[CS] ๐Ÿ”ฅ Array & Linked List

Kledยท2024๋…„ 3์›” 26์ผ
0

[CS]

๋ชฉ๋ก ๋ณด๊ธฐ
6/7

๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

์ด ๋•Œ ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ , ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Array (๋ฐฐ์—ด)

ํŠน์ง•

๋ฐฐ์—ด์€ ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜• ์š”์†Œ์˜ ๋ชจ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์„ ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(sequence container)์ด๋ฉฐ ๊ฐ ์š”์†Œ๋Š” ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ธ๋ฑ์Šค ๋˜๋Š” ํ‚ค๋กœ ์‹๋ณ„๋œ๋‹ค.

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

ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ๋Š” ํšจ์œจ์ ์ด์ง€ ๋ชปํ•˜๋‹ค. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๊ฐ„์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ž๋ฆฌ๋ฅผ ๋น„์šฐ๊ณ  ๋’ค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ์นธ์”ฉ ๋’ค๋กœ ๋ฐ€์–ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ ๋ฐฐ์—ด์€ ์ข‹์€ ์„ ํƒ์ด ๋˜์ง€ ๋ชปํ•œ๋‹ค.

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

์‚ฝ์ž…/์‚ญ์ œ

๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์‚ฝ์ž…/์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ : O(n)
๋ฐฐ์—ด์˜ ๋งจ ๋’ค์— ์‚ฝ์ž…/์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ : O(1)
๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์— ์‚ฝ์ž…/์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ : O(n)

ํƒ์ƒ‰

O(1)

Linked List

ํŠน์ง•

๋ฆฌ์ŠคํŠธ ์—ญ์‹œ ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์„ ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(sequence container)์ด๋ฉฐ, ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ ํ•„๋“œ์™€ ๋ชฉ๋ก์˜ ๋‹ค์Œ ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ฐธ์กฐ(๋งํฌ)๋ฅผ ํฌํ•จํ•˜๋Š” ๋…ธ๋“œ(์š”์†Œ)๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.

์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ํ—ค๋“œ(head), ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ํ…Œ์ผ(tail)์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ๊ฐ ๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ƒ์„ฑ ์‹œ heap์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋œ๋‹ค.

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

์‚ฝ์ž…, ์‚ญ์ œ

๋ฆฌ์ŠคํŠธ์˜ ๋งจ ์•ž/๋’ค์— ์‚ฝ์ž… ๋˜๋Š” ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ : O(1)
๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„์— ์‚ฝ์ž… ๋˜๋Š” ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ : O(n) (ํƒ์ƒ‰ํ•˜๋Š” ์‹œ๊ฐ„)

ํƒ์ƒ‰

O(n)

๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด์ 

๋ฐฐ์—ด (Array)์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (Linked List)
์ •์  ์ž๋ฃŒ๊ตฌ์กฐ๋™์  ์ž๋ฃŒ๊ตฌ์กฐ
๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ์„ ์–ธ ์‹œ์ ์— ์ •ํ•ด์ง„๋‹ค
(javascript ์ œ์™ธ)
๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค(node ์ถ”๊ฐ€/์‚ญ์ œ์— ๋”ฐ๋ผ ์œ ๋™์ )
์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ํ• ๋‹น์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ํ• ๋‹น๋ฐ›์ง€ ์•Š์Œ.
์ธ๋ฑ์Šค(index)๋…ธ๋“œ(Node) - ๋ฐ์ดํ„ฐ, ํฌ์ธํ„ฐ
์ ‘๊ทผ๊ณผ ํƒ์ƒ‰์ด ํŽธ๋ฆฌ์ถ”๊ฐ€์™€ ์‚ญ์ œ๊ฐ€ ํŽธ๋ฆฌ
๋น ๋ฅธ ์ ‘๊ทผ O
๋งŽ์€ ๋ฐ์ดํ„ฐ
์ถ”๊ฐ€/์‚ญ์ œ ๊ฒฝ์šฐ๊ฐ€ ์ ์„ ๋•Œ
์ถ”๊ฐ€/์‚ญ์ œ O
๊ฒ€์ƒ‰ ๋นˆ๋„๊ฐ€ ์ ์„ ๋•Œ
profile
๊ณต๋ถ€ํ•˜๋Š” ๋Œ๋ฉฉ์ด ๐Ÿชจ

0๊ฐœ์˜ ๋Œ“๊ธ€