ํด์ฌํ ์ด๋ธ(2)
-
[์๋ฃ๊ตฌ์กฐ] #6_2 ํด์ ํ ์ด๋ธ
** ์ถฉ๋(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..
2021.05.30 -
[์๋ฃ๊ตฌ์กฐ] #6_1 ํด์ ํ ์ด๋ธ
** ํด์ ํ ์ด๋ธ(Hash Table) ๊ตฌ์กฐ - ํค(Key)์ ๋ฐ์ดํฐ(Value)๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ - ์ฅ์ : ํค๋ฅผ ํตํด ๋ฐ๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ - ๋ณดํต ๋ฐฐ์ด๋ก ๋ฏธ๋ฆฌ ํด์ฌ ํ ์ด๋ธ ์ฌ์ด์ฆ๋งํผ ์์ฑ ํ์ ์ฌ์ฉ (๊ณต๊ฐ๊ณผ ํ์ ์๊ฐ์ ๋ง๋ฐ๊พธ๋ ๊ธฐ๋ฒ) - ํ์ด์ฌ์ ๋์ ๋๋ฆฌ(Dictionary) ํ์ ** ๊ด๋ จ ์ฉ์ด ํด์(Hash): ์์์ ๊ฐ์ ๊ณ ์ ๊ธธ์ด๋ก ๋ณํํ๋ ๊ฒ ํด์ ํ ์ด๋ธ: ํค ๊ฐ์ ์ฐ์ฐ์ ์ํด ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํด์ฑ ํจ์: ํค์ ๋ํด ์ฐ์ ์ฐ์ฐ์ ์ด์ฉํด ๋ฐ์ดํฐ ์์น๋ฅผ ์ฐพ์ ์ ์๋ ํจ์ ํด์ ๊ฐ(= ํด์ ์ฃผ์): ํค๋ฅผ ํด์ฑ ํจ์๋ก ์ฐ์ฐํ์ฌ, ํด์ ๊ฐ์ ์์๋ด๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ ํ ์ด๋ธ์์ ํด๋น ํค์ ๋ํ ๋ฐ์ดํฐ ์์น๋ฅผ ์ผ๊ด์ฑ ์๊ฒ ์ฐพ์ ์ ์์ ์ฌ๋กฏ(Slot): ํ ๊ฐ์ ..
2021.05.30