[์ž๋ฃŒ๊ตฌ์กฐ] Hash(ํ•ด์‹œ)

ํ•ด์‹œ๋ž€? - Hash ํ˜น์€ HashTable์€ ํ‚ค๋ฅผ ๊ฐ’์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ธ, ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. - ์ž„์˜์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ(Key)๋ฅผ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ(Value)๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์ €์žฅ - ํ‚ค์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ํ‚ค-๊ฐ’ ์Œ์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” associate array - ํ‚ค์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์„ hashing(ํ•ด์‹ฑ)์ด๋ผ ํ•˜๊ณ , ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ•ด์‹œํ•จ์ˆ˜ - ํ•ด์‹œ๊ฐ’ ์ž์ฒด๋ฅผ index๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ‰๊ท  ๋ณต์žก๋„๊ฐ€ O(1)๋กœ ๋งค์šฐ ๋น ๋ฅด๋‹ค - ๋ณด์•ˆ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋ž€? - ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด, ์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜ํ•™์  ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๊ณ ์ •๋œ ๊ธธ์ด์˜ ํ…Œ์ดํ„ฐ๋กœ ๋งคํ•‘ํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ํ•ด์‹œ ํ•จ์ˆ˜์— ..

CS/Data Structure 2022. 6. 13. 20:27
[์ž๋ฃŒ๊ตฌ์กฐ] Arrays vs LinkedList

Array ๋ฐฐ์—ด - ๋…ผ๋ฆฌ์  ์ €์žฅ์ˆœ์„œ์™€ ๋ฌผ๋ฆฌ์  ์ €์žฅ์ˆœ์„œ๊ฐ€ ์ผ์น˜ - ํŠน์ • ์ž๋ฃŒํ˜•๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์ƒ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ - Immutable ( ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ ) : ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ์ดํ›„ ๊ทธ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๋””์ž์ธ ํŒจํ„ด - ์ธ๋ฑ์Šค๋กœ ์›์†Œ์— ์ ‘๊ทผํ•จ : Random Access -> O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ์›์†Œ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ : ์‚ญ์ œ ๋˜๋Š” ์‚ฝ์ž… ๊ณผ์ •์—์„œ๋Š” ํ•ด๋‹น ์›์†Œ์— ์ ‘๊ทผํ•˜๊ณ  Shift๋ฅผ ํ•ด์„œ O(n) : ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ๋น„ํšจ์œจ์  - ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ™œ์šฉ์ด ์ œ์•ฝ์  LinkedList - ๋…ผ๋ฆฌ์  ์ €์žฅ์ˆœ์„œ์™€ ๋ฌผ๋ฆฌ์  ์ €์žฅ ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅด๋‹ค : ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์‹œ ์ฒ˜์Œ ๋…ธ๋“œ๋ถ€ํ„ฐ ์ˆœํ™˜ O(n) - ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ƒ์— ๋…ธ๋“œ๋“ค์ด ํฉ์–ด์ ธ ์กด์žฌํ•จ, ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ์˜ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ์Œ : ์‚ฌ์šฉ์ž๋Š” ์ œ์ผ ์ฒซ ..

CS/Data Structure 2022. 3. 28. 22:08