Array

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ
๋…ผ๋ฆฌ์  ์ €์žฅ ์ˆœ์„œ = ๋ฌผ๋ฆฌ์  ์ €์žฅ ์ˆœ์„œ

 

 

์ธ๋ฑ์Šค(index)๋กœ ํ•ด๋‹น ์›์†Œ(element)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ฐพ๊ณ ์ž ํ•˜๋Š” ์›์†Œ์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด Big-O(1)์— ํ•ด๋‹น ์›์†Œ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ random access ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

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

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Array ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ์‚ญ์ œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ time complexity ์˜ worst case ๋Š” O(n)์ด ๋œ๋‹ค.

 

์‚ฝ์ž…์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๋งŒ์•ฝ ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ์— ์ƒˆ๋กœ์šด ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๋ชจ๋“  ์›์†Œ๋“ค์˜ ์ธ๋ฑ์Šค๋ฅผ 1 ์”ฉ shift ํ•ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ ์ด ๊ฒฝ์šฐ๋„ O(n)์˜ ์‹œ๊ฐ„์„ ์š”๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

 


 

Linked List

๊ฐ๊ฐ์˜ ์›์†Œ๋“ค์€ ์ž๊ธฐ ์ž์‹  ๋‹ค์Œ์— ์–ด๋–ค ์›์†Œ์ธ์ง€๋งŒ์„ ๊ธฐ์–ต

 

 

์ž๊ธฐ ๋‹ค์Œ์— ์–ด๋–ค ์›์†Œ์ธ์ง€ ๊ธฐ์–ตํ•ด๋‘๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋ถ€๋ถ„๋งŒ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์‚ญ์ œ์™€ ์‚ฝ์ž…์„ O(1) ๋งŒ์— ํ•ด๊ฒฐ๊ฐ€๋Šฅ!

 

ํ•˜์ง€๋งŒ ์›ํ•˜๋Š” ์œ„์น˜์— ์‚ฝ์ž…์„ ํ•˜๊ณ ์ž ํ•˜๋ฉด ์›ํ•˜๋Š” ์œ„์น˜๋ฅผ Search ๊ณผ์ •์— ์žˆ์–ด์„œ ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ๋‹ค ํ™•์ธํ•ด๋ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Array ์™€๋Š” ๋‹ฌ๋ฆฌ ๋…ผ๋ฆฌ์  ์ €์žฅ ์ˆœ์„œ์™€ ๋ฌผ๋ฆฌ์  ์ €์žฅ ์ˆœ์„œ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๊ฒƒ์€ ์ผ๋‹จ ์‚ฝ์ž…ํ•˜๊ณ  ์ •๋ ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ์ด ๊ณผ์ • ๋•Œ๋ฌธ์—, ์–ด๋– ํ•œ ์›์†Œ๋ฅผ ์‚ญ์ œ ๋˜๋Š” ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ–ˆ์„ ๋•Œ, ๊ทธ ์›์†Œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ O(n)์˜ ์‹œ๊ฐ„์ด ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

๊ฒฐ๊ตญ linked list ์ž๋ฃŒ๊ตฌ์กฐ๋Š” search ์—๋„ O(n)์˜ time complexity ๋ฅผ ๊ฐ–๊ณ , ์‚ฝ์ž…, ์‚ญ์ œ์— ๋Œ€ํ•ด์„œ๋„ O(n)์˜ time complexity ๋ฅผ ๊ฐ–๋Š”๋‹ค. 

 

๊ทธ๋ ‡์ง€๋งŒ Linked List ๋Š” Tree ๊ตฌ์กฐ์˜ ๊ทผ๊ฐ„์ด ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, Tree ์—์„œ ์‚ฌ์šฉ๋˜์—ˆ์„ ๋•Œ ๊ทธ ์œ ์šฉ์„ฑ์ด ๋“œ๋Ÿฌ๋‚œ๋‹ค.

 

 


 

1. ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์†๋„ Array๊ฐ€ ์ข‹๋‹ค.

* ๋ฐฐ์—ด์€ index๋งŒ ์žˆ๋‹ค๋ฉด O(1)์— ์ ‘๊ทผ๊ฐ€๋Šฅ
์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ์ตœ์†Œ ํ•œ ๋ฒˆ์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜์—ฌ์•ผ ํ•˜๋ฏ€๋กœ O(n)
2. ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์†๋„ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด์ง€๋งŒ ์ „๋ฐ˜์ ์œผ๋กœ Linked List๊ฐ€ ๋‚ซ๋‹ค.

* linked list๋Š” ์–ด๋Š ๊ณณ์— ์‚ฝ์ž…ํ•˜๋˜์ง€ O(n)

array๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๊ฐ„์ด๋‚˜ ๋งจ ์•ž์— ์‚ฝ์ž…ํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ํ•œ์นธ์”ฉ ๋ฏธ๋ค„์•ผ ํ•˜๊ณ  ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด realloc() ๋˜๋Š” ์ƒˆ๋กœ์ด ํ• ๋‹นํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ™•์žฅ ํ•„์š”

๋งŒ์•ฝ array์— ๊ณต๊ฐ„์ด ๋งŽ์ด ๋‚จ์•„์žˆ๊ณ  ๋งจ ๋์— ์‚ฝ์ž…ํ•œ๋‹ค๋ฉด, array ์‚ฝ์ž… ์†๋„ ์—ญ์‹œ O(1) ๊ฐ€๋Šฅ
3. ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์†๋„ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด์ง€๋งŒ ์ „๋ฐ˜์ ์œผ๋กœ Linked List๊ฐ€ ๋‚ซ๋‹ค.
๊ฒฐ๋ก  ์‚ฝ์ž… ์‚ญ์ œ๊ฐ€ ๋ฒˆ๋ฒˆํžˆ ์ด๋ฃจ์–ด์ง„๋‹ค๋ฉด, Linked List ์‚ฌ์šฉ์ด ์ข‹์Œ.
์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ ‘๊ทผ๋งŒ ํ•„์š”ํ•˜๋ฉด Array์ด ์ข‹์Œ.

 

 

์ „๋ฐ˜์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ์˜ ์‚ฌ์šฉ์ด ํ›จ์”ฌ ์ข‹์•„๋ณด์ธ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•  ๋• ๋ฆฌ์ŠคํŠธ๋ณด๋‹ค ๋ฐฐ์—ด์ด ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ์ข‹๋‹ค.

์™œ๋ƒํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฐ์Šต๋ฌธ์ œ๋“ค์€ ๊ทธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ๋ฒ”์œ„๋ฅผ ์ฃผ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด ์„ ์–ธ์„ ๊ทธ MAX์น˜๋กœ ์žก์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ํ›จ์”ฌ ๋” ํŽธ๋ฆฌํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ์™€๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ์†๋„๋ฅผ ๋ณด์ธ๋‹ค.

๋ฆฌ์ŠคํŠธ์˜ ์ž…๋ ฅ์€ ์ถ”๊ฐ€ ๊ณผ์ •๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ์˜ ํ• ๋‹น์ด ์ผ์–ด๋‚˜๊ณ  ์‚ญ์ œ์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ด์ œ๊ฐ€ ์ผ์–ด๋‚œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์˜ ํ• ๋‹น๊ณผ ํ•ด์ œ๋Š” O() ์‹œ๊ฐ„์œผ๋กœ ๋”ฐ์ง€์ง€ ์•Š์ง€๋งŒ, ์ด๋Ÿฐ ์‹œ์Šคํ…œ ์ฝœ(System Call)์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๊ตฌ๋Š” ์‹œ๊ฐ„์†Œ์š”๊ฐ€ ๊ฝค ๊ฑธ๋ฆฐ๋‹ค.

 

 

๋ฐฐ์—ด์ด๋“  ๋ฆฌ์ŠคํŠธ์ด๋“  ๋‹จ์ˆœํžˆ ์ด๋ก ์„ ๋– ๋‚˜์„œ ์ž๊ธฐ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋ ค๋Š”์ง€, ๊ทธ ๋ชฉ์ ์— ๋”ฐ๋ผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

+ Recent posts