๐Ÿ’ป Knowledge/์ž๋ฃŒ๊ตฌ์กฐ

Array vs LinkedList ํŠน์ง• & ์„ฑ๋Šฅ ๋น„๊ต

ming412 2023. 9. 21. 09:54

Array (๋ฐฐ์—ด)

ํŠน์ง•

- ๊ฐ™์€ ํƒ€์ž…์˜ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

- ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋˜๋ฉฐ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค.

 

์‹œ๊ฐ„ ๋ณต์žก๋„

์ ‘๊ทผ(Access)

- ๋ฐฐ์—ด์€ ๋ฌด์ž‘์œ„ ์ ‘๊ทผ(random access)์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์ธ๋ฑ์Šค๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ O(1)

 

๊ฒ€์ƒ‰(Search): ์ˆœ์ฐจ ์ ‘๊ทผ์ด๋ผ๊ณ ๋„ ํ•จ

- ์„ ํ˜• ๊ฒ€์ƒ‰(Linear Search): ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š” ๊ฒฝ์šฐ๋กœ O(n)

- ์ด์ง„ ๊ฒ€์ƒ‰(Binary Search): ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š” ๊ฒฝ์šฐ๋กœ O(log n)

 

์‚ฝ์ž…(Insertion)

- ๋ฐฐ์—ด์˜ ์‹œ์ž‘์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ์ดํ›„ ์š”์†Œ๋“ค์„ ๋ชจ๋‘ ํ•œ ์นธ์”ฉ ๋’ค๋กœ ์ด๋™์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ O(n)

๋ฐฐ์—ด ์‹œ์ž‘์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ

- ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ์ดํ›„ ์š”์†Œ๋“ค์„ ๋ชจ๋‘ ํ•œ ์นธ์”ฉ ๋’ค๋กœ ์ด๋™์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ O(n)

- ๋ฐฐ์—ด์˜ ๋์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ์ถ”๊ฐ€์ ์ธ ์š”์†Œ ์ด๋™์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— O(1)

    - ๋™์  ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์ด ๊ฐ€๋“์ฐฌ ์ƒํƒœ์—์„œ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฌ๊ณ  ๊ธฐ์กด ์š”์†Œ๋“ค์„ ๋ณต์‚ฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(n)

 

์‚ญ์ œ(Deletion)

- ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์ดํ›„ ์š”์†Œ๋“ค์„ ๋ชจ๋‘ ํ•œ ์นธ์”ฉ ์•ž์œผ๋กœ ์ด๋™์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ O(n)

- ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์ดํ›„ ์š”์†Œ๋“ค์„ ๋ชจ๋‘ ํ•œ ์นธ์”ฉ ์•ž์œผ๋กœ ์ด๋™์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ O(n)

- ๋ฐฐ์—ด์˜ ๋ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์ถ”๊ฐ€์ ์ธ ์š”์†Œ ์ด๋™์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— O(1)

 

LinkedList (์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ)

ํŠน์ง•

- Array์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์‚ฝ์ž…/์‚ญ์ œ ์—ฐ์‚ฐ์— ํšจ์œจ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ

- Array๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค๋ฉด, LinkedList๋Š” ๋น„์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ทธ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

- ์ƒˆ๋กœ์šด ์›์†Œ๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ๋งˆ๋‹ค ๋™์ ์œผ๋กœ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์•„ ๋น„์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ถ”๊ฐ€ํ•œ๋‹ค.

- ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๋‹จ์œ„์ธ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๋Š” "๊ฐ’"๊ณผ "ํฌ์ธํ„ฐ"(๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

    - "๊ฐ’"์€ ์ •์ˆ˜/์‹ค์ˆ˜์™€ ๊ฐ™์€ ๊ธฐ์ดˆ ํƒ€์ž…์ด๋‚˜ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

 

์‹œ๊ฐ„ ๋ณต์žก๋„

์ ‘๊ทผ(Access)

- ํŠน์ • ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•œ ์›์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜์—ฌ ํ•ด๋‹น ์œ„์น˜๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(n)

2๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•œ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ

 

๊ฒ€์ƒ‰(Search)

- ํŠน์ • ๊ฐ’์˜ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜์—ฌ ํŠน์ • ๊ฐ’์„ ๊ฐ–๋Š” ๋…ธ๋“œ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(n)

ํŠน์ • ๊ฐ’์˜ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ

 

์‚ฝ์ž…(Insertion)

- ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, head ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(1)

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ

- ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜์—ฌ ์‚ฝ์ž…ํ•  ์œ„์น˜์˜ ์ด์ „ ๋…ธ๋“œ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(n)

    - ๋‹จ, ์‚ฝ์ž… ์ž‘์—… ์ž์ฒด๋Š” ํ•ด๋‹น ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(1)

์ค‘๊ฐ„์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ

- ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(n)

    - ์ด ๋•Œ, ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ O(n) -> O(1)์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•? tail ํฌ์ธํ„ฐ๋ฅผ ๋‘์–ด ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ

 

์‚ญ์ œ(Deletion)

- ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, head ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(1)

์‹œ์ž‘ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ

- ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜์—ฌ ์‚ญ์ œํ•  ์œ„์น˜์˜ ์ด์ „ ๋…ธ๋“œ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(n)

    - ๋‹จ, ์‚ญ์ œ ์ž‘์—… ์ž์ฒด๋Š” ํ•ด๋‹น ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(1)

- ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(n)

    - ๋‹จ, ์‚ญ์ œ ์ž‘์—… ์ž์ฒด๋Š” ํ•ด๋‹น ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(1)

๋ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ

 

Array vs LinkedList

Array

- ๋น ๋ฅธ ์ ‘๊ทผ: ๋ฌด์ž‘์œ„ ์ ‘๊ทผ(random access)์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ์›์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋А๋ฆฐ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ: ์‚ฝ์ž…/์‚ญ์ œ ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ์นธ์”ฉ ๋’ค/์•ž์œผ๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํšจ์šธ์ ์ด๋‹ค.

- ํฌ๊ธฐ ๊ณ ์ •: ๋ฐฐ์—ด ์ƒ์„ฑ ์‹œ์— ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉฐ ๋ณ€๊ฒฝํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ƒˆ ๋ฐฐ์—ด์„ ํ• ๋‹นํ•˜๊ณ  ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ด์•ผ ํ•œ๋‹ค.

- ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ•„์š”: ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐ„์˜ ์ œ์•ฝ์ด ์กด์žฌํ•œ๋‹ค.

- ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํšจ์œจ์„ฑ: ๊ฐ ์š”์†Œ๋Š” ๋™์ผํ•œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์—†๋‹ค.

 

Linked List

- ๋น ๋ฅธ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ: ์‚ฝ์ž…/์‚ญ์ œํ•  ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š” ๋ฐ๋Š” O(n)์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ, ์‚ฝ์ž…/์‚ญ์ œ ์ž‘์—… ์ž์ฒด๋Š” ํ•ด๋‹น ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(1)์ด๋‹ค.

- ๋А๋ฆฐ ์ ‘๊ทผ: ์ˆœ์ฐจ ์ ‘๊ทผ(sequential access)๋งŒ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

- ๋™์  ํฌ๊ธฐ: ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ ˆ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์ด ํšจ์œจ์ ์ด๋‹ค. (๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๋Š”๋‹ค.)

- ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๋ถˆํ•„์š”: ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐ„์˜ ์ œ์•ฝ์ด ์—†๋‹ค.

- ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๋น„ํšจ์œจ์„ฑ: ๊ฐ ๋…ธ๋“œ๋Š” ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.