Wing Pointer - Text Select
[์ž๋ฃŒ๊ตฌ์กฐ] #6_2 ํ•ด์‹œ ํ…Œ์ด๋ธ”
ยท
Problem Solving/Data Structure
** ์ถฉ๋Œ(Collision) ํ•ด๊ฒฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1) Chaining ๊ธฐ๋ฒ• Open hashing ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ” ์ €์žฅ๊ณต๊ฐ„ ์™ธ์˜ ๊ณต๊ฐ„์„ ํ™œ์šฉ ์ถฉ๋Œ์‹œ, ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ์ดํ„ฐ๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ์„œ ์ €์žฅํ•จ hash_table = list([0 for i in range(8)]) def get_key(data): return hash(data) def hash_function(key): return key % 8 def save_data(data, value): index_key = get_key(data) hash_address = hash_function(index_key) if hash_table[hash_address] != 0: for index in range(len(hash_table[hash_a..
[์ž๋ฃŒ๊ตฌ์กฐ] #6_1 ํ•ด์‹œ ํ…Œ์ด๋ธ”
ยท
Problem Solving/Data Structure
** ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table) ๊ตฌ์กฐ - ํ‚ค(Key)์— ๋ฐ์ดํ„ฐ(Value)๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ - ์žฅ์ : ํ‚ค๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ - ๋ณดํ†ต ๋ฐฐ์—ด๋กœ ๋ฏธ๋ฆฌ ํ•ด์‰ฌ ํ…Œ์ด๋ธ” ์‚ฌ์ด์ฆˆ๋งŒํผ ์ƒ์„ฑ ํ›„์— ์‚ฌ์šฉ (๊ณต๊ฐ„๊ณผ ํƒ์ƒ‰ ์‹œ๊ฐ„์„ ๋งž๋ฐ”๊พธ๋Š” ๊ธฐ๋ฒ•) - ํŒŒ์ด์ฌ์˜ ๋”•์…”๋„ˆ๋ฆฌ(Dictionary) ํƒ€์ž… ** ๊ด€๋ จ ์šฉ์–ด ํ•ด์‹œ(Hash): ์ž„์˜์˜ ๊ฐ’์„ ๊ณ ์ • ๊ธธ์ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ ํ•ด์‹œ ํ…Œ์ด๋ธ”: ํ‚ค ๊ฐ’์˜ ์—ฐ์‚ฐ์— ์˜ํ•ด ์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ•ด์‹ฑ ํ•จ์ˆ˜: ํ‚ค์— ๋Œ€ํ•ด ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ ํ•ด์‹œ ๊ฐ’(= ํ•ด์‹œ ์ฃผ์†Œ): ํ‚ค๋ฅผ ํ•ด์‹ฑ ํ•จ์ˆ˜๋กœ ์—ฐ์‚ฐํ•˜์—ฌ, ํ•ด์‹œ ๊ฐ’์„ ์•Œ์•„๋‚ด๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ”์—์„œ ํ•ด๋‹น ํ‚ค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์œ„์น˜๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ ์Šฌ๋กฏ(Slot): ํ•œ ๊ฐœ์˜ ..