Skip to content

Latest commit

ย 

History

History
59 lines (42 loc) ยท 4.42 KB

Array-vs-Linked-List.md

File metadata and controls

59 lines (42 loc) ยท 4.42 KB

๋ฐฐ์—ด vs ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ

  1. ๋น„๊ต
    1. ์กฐํšŒ(lookup)
    2. ์‚ฝ์ž…/์‚ญ์ œ(insert/delete)
    3. ๋ฉ”๋ชจ๋ฆฌ(memory)
      1. ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(memory allocation)
  2. ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ƒํ™ฉ
    1. ๋ฐฐ์—ด
    2. ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ

๋น„๊ต

๋‘ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ฐจ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์— ๊ธฐ์ธํ•œ๋‹ค. ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์—ฐ์†์ , ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๋น„์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์ด๊ฐ™์€ ๊ตฌ์กฐ ์ฐจ์ด๋กœ ์ธํ•ด operation ๊ตฌํ˜„๋ฐฉ๋ฒ•๊ณผ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ ํ™œ์šฉ๋„์—๋„ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ์ธ ๋ฐ˜๋ฉด, ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„  ๋น„์—ฐ์†์ ์ด์ง€๋งŒ, ๊ฐ ์›์†Œ๊ฐ€ ๋‹ค์Œ ์›์†Œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜์—ฌ ๋…ผ๋ฆฌ์  ์—ฐ์†์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค.
  • ์„œ๋กœ ๋‹ค๋ฅธ ์—ฐ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ์— ๊ฐ operation์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋‹ค๋ฅด๋‹ค.
    Operation ๋ฐฐ์—ด ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ
    Access(์กฐํšŒ) O(1) O(n)
    Insertion(์‚ฝ์ž…) O(n) O(1)
    Deletion(์‚ญ์ œ) O(n) O(1)
  • ์ €์žฅํ•  ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๊ณ , ์กฐํšŒ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค.
  • ์ €์žฅํ•  ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ๋ถˆํ™•์‹คํ•˜๊ณ , ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ์žฆ๋‹ค๋ฉด ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค.

์กฐํšŒ(lookup)

  • ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์ฆ‰์‹œ ์ ‘๊ทผ(Random Access O(1))์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ๋ถˆ์—ฐ์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์ˆœ์ฐจ ์ ‘๊ทผ(Sequential Access)๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ํŠน์ • ์ธ๋ฑ์Šค์˜ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ์œ„ํ•ด์„œ๋Š” O(n)์˜ ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋œ๋‹ค.

์‚ฝ์ž…/์‚ญ์ œ(insert/delete)

  • ๋ฐฐ์—ด์€ ๋งจ ๋งˆ์ง€๋ง‰ ์›์†Œ์˜ ์ถ”๊ฐ€/์‚ญ์ œ์˜ ๊ฒฝ์šฐ O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์™ธ ์›์†Œ์˜ ์ถ”๊ฐ€/์‚ญ์ œ์˜ ๊ฒฝ์šฐ ์‚ฝ์ž…/์‚ญ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์›์†Œ๋ณด๋‹ค ํฐ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€๋Š” ์›์†Œ๋“ค์„ ํ•œ ์นธ์”ฉ shiftํ•˜๋Š” ๋น„์šฉ(cost)์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ์–ด๋–ค ์›์†Œ์˜ ์ถ”๊ฐ€/์‚ญ์ œ๋ผ๋„ ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ ์ฃผ์†Œ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๊ธฐ์— shift๊ฐ€ ํ•„์š” ์—†๋‹ค. ๋”ฐ๋ผ์„œ O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ์ถ”๊ฐ€/์‚ญ์ œ๋ฅผ ํ•˜๋ ค๋Š” ์ธ๋ฑ์Šค๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š”๋ฐ O(n)์˜ ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋˜๊ธฐ์— ์‹ค์งˆ์ ์œผ๋กœ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์—ญ์‹œ ์ถ”๊ฐ€/์‚ญ์ œ ์ˆ˜ํ–‰์— O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ(memory)

  • ๋ฐฐ์—ด์˜ ์ฃผ์š” ์žฅ์ ์€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ๊ณผ append๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์ ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ผ๋Š” ๋‹จ์ ๋„ ์žˆ๋‹ค. ๋ฐฐ์—ด์€ ์„ ์–ธ์‹œ fixed size๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์•„๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๋Ÿฐํƒ€์ž„(ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰)์ค‘์—์„œ๋„ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ initial size๋ฅผ ๊ณ ๋ฏผํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋งŒํผ memory allocation์„ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ์—†๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(memory allocation)

  • ๋ฐฐ์—ด์€ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ์ผ์–ด๋‚œ๋‹ค. ์ด๋ฅผ ์ •์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(Static Memory Allocation)์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ ์Šคํƒ(Stack) ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํ• ๋‹น๋œ๋‹ค.
  • ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๋Ÿฐํƒ€์ž„ ๋‹จ๊ณ„์—์„œ ์ƒˆ๋กœ์šด ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ์ผ์–ด๋‚œ๋‹ค. ์ด๋ฅผ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(Dynamic Memory Allocation)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด ๊ฒฝ์šฐ ํž™(Heap) ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํ• ๋‹น๋œ๋‹ค.

์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ƒํ™ฉ

๋ฐฐ์—ด

  • ์กฐํšŒ ์ž‘์—…์„ ์ž์ฃผ ํ•ด์•ผํ•  ๋•Œ
  • ๋ฐฐ์—ด์„ ์„ ์–ธํ•  ๋‹น์‹œ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ์„ ๋•Œ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ์ˆœํšŒํ•  ๋•Œ
  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒŒ ์“ฐ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ์ƒํ™ฉ์ผ ๋•Œ. ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ณด๋‹ค ๋ฐฐ์—ด์ด ๋‹จ์ผ ๋ฐ์ดํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ ๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ๋“ค์–ด์˜ฌ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์•Œ๊ณ ์žˆ๋‹ค๋ฉด ๋ฐฐ์—ด์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ

  • O(1)์œผ๋กœ ์‚ฝ์ž…/์‚ญ์ œ๋ฅผ ์ž์ฃผ ํ•ด์•ผํ•  ๋•Œ
  • ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์„ ๋•Œ
  • ์กฐํšŒ ์ž‘์—…์ด ๋“œ๋ฌผ ๋•Œ