Array

์ตœ์ œ์›ยท2023๋…„ 1์›” 23์ผ
0

์ž๋ฃŒ๊ตฌ์กฐ

๋ชฉ๋ก ๋ณด๊ธฐ
3/4
post-thumbnail

Q.Array๋Š” ์–ด๋– ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ธ๊ฐ€


๐Ÿ’ก Array
์—ฐ๊ด€๋œ data๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์—ฐ์†์ ์ด๋ฉฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฏธ๋ฆฌ ํ• ๋‹น๋œ ํฌ๊ธฐ๋งŒํผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค

Linked List์™€์˜ ์ฐจ์ด์ 

Array์™€ Linked List์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹๊ณผ
์ด์— ๋”ฐ๋ฅธ operation(์‚ฝ์ž…/์‚ญ์ œ/์กฐํšŒ)๋“ฑ์˜ ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค


Array์˜ ๋ฐ์ดํ„ฐ๋“ค์€ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž

const array = [1, 2, 3, 4] 

์—ฌ๊ธฐ์„œ ๊ธฐ์–ตํ•ด์•ผ ๋  ํฌ์ธํŠธ๋Š” 2๊ฐœ์ด๋‹ค

  1. DATA์˜ ์ฃผ์†Œ๊ฐ’์€ ํ• ๋‹น๋œ ์ฃผ์†Œ์ค‘ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ๊ฐ’์ด๋ผ๋Š”๊ฒƒ์ด๋‹ค

    ์˜ˆ๋ฅผ๋“ค์–ด 1์˜ ์ฃผ์†Œ๊ฐ’์€ 0X4AF55๋ฒˆ์ด ๋˜๋Š” ๊ฒƒ ์ด๋ฉฐ

    2์˜ ์ฃผ์†Œ๊ฐ’์€ 0X4AF59๋ฒˆ์ด ๋˜๋Š” ๊ฒƒ ์ด๋‹ค

    ์ถ”๊ฐ€์ ์œผ๋กœ ํ˜„์žฌ ํ•œ ๋ฐ์ดํ„ฐ๋Š” 4Byte์”ฉ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค

  2. ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ์ด ๋  ๊ฒฝ์šฐ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ์ด ๋œ๋‹ค


Array ํŠน์ง•

  • Array ํŠน์ง•

    • ๊ณ ์ •๋œ ์ €์žฅ ๊ณต๊ฐ„(fixed-size)
    • ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ(order)
  • Array operation๋“ค์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„

    • ์กฐํšŒ: O(1) - random access
    • ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ์ถ”๊ฐ€(append): O(1)
    • ๋งˆ์ง€๋ง‰ ์ธ๋ฐ์Šค ์‚ญ์ œ: O(1)
    • ์‚ฝ์ž…(inset): O(n)
    • ์‚ญ์ œ(delete): O(n)
    • ํƒ์ƒ‰(search): O(n)

๐Ÿ’ก radon access๋ž€?

1~4๋ฒˆ์งธ index๋ฅผ ์ „๋ถ€ ์กฐํšŒํ•˜์ง€ ์•Š๊ณ  ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋œ ๊ฒƒ์„ ์•Œ๊ธฐ ๋•Œ๋ฌธ์—
(์ฒซ๋ฒˆ์งธ index ์ฃผ์†Œ๊ฐ’ + 4x3)์˜ ๊ณต์‹์„ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น index๋ฅผ ์กฐํšŒํ•œ๋‹ค
๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ์ ์„ radom acces๋ผ๊ณ  ํ•œ๋‹ค

๐Ÿ’ก ์‚ฝ์ž…/์‚ญ์ œ O(n)์˜ ์›๋ฆฌ

Array์— ๋ฌด์—‡์„ insertํ˜น์€ deleteํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋’ค๋กœ ๋ฐ€๊ฑฐ๋‚˜ ๋•ก๊ฒจ์•ผ ๋œ๋‹ค
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— O(๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ํ˜•์„ฑ์ด ๋˜๋Š” ๊ฒƒ

๐Ÿ’ก Arrayํƒ์ƒ‰์˜ ์›๋ฆฌ

ํƒ์ƒ‰์€ ์กฐํšŒ์™€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ 4๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
์ผ์ผ์ด array๋ฅผ ์ˆœํšŒํ• ์ˆ˜ ๋ฐ–์— ์—†์Œ ๋”ฐ๋ผ์„œ O(n)์˜ ๋ณต์žก๋„๊ฐ€ ํ˜•์„ฑ๋œ๋‹ค


Array์˜ ์žฅ๋‹จ์ 

Array์˜ ์žฅ์ ์€ ์กฐํšŒ์™€ append๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
๋”ฐ๋ผ์„œ ์กฐํšŒ๋ฅผ ์ž์ฃผ ํ•ด์•ผ๋˜๋Š” ์ž‘์—…์—๋Š” Array์˜ ๊ตฌ์กฐ๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค

๋ฐ˜๋ฉด์— Array์˜ ๋‹จ์ ์€ fixed-size ํŠน์„ฑ์ƒ ์„ ์–ธ์‹œ Array์˜ ํฌ๊ธฐ๋ฅผ
๋ฏธ๋ฆฌ ์ •ํ•ด์•ผ ๋œ๋‹ค๋Š” ๊ฒƒ
์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ญ๋น„, overhead๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค

๐Ÿ’ก overhead

์˜ค๋ฒ„ํ—ค๋“œ๋ž€ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ํ๋ฆ„์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ์ค‘ ํ•˜๋‚˜๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด , ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ํ๋ฆ„ ๋„์ค‘์— ๋™๋–จ์–ด์ง„ ์œ„์น˜์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์•ผ ํ•  ๋•Œ , ์ถ”๊ฐ€์ ์œผ๋กœ ์‹œ๊ฐ„,๋ฉ”๋ชจ๋ฆฌ,์ž์›์ด ์‚ฌ์šฉ๋˜๋Š” ํ˜„์ƒ.

ํ•œ๋งˆ๋””๋กœ ์ •์˜ํ•˜์ž๋ฉด, ์˜ค๋ฒ„ ํ—ค๋“œ๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋“œ๋Š” ๊ฐ„์ ‘์ ์ธ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์ž์›์„ ๋งํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ 100์œผ๋กœ ์žก์•„๋†จ๋Š”๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ 10๊ฐœ๋งŒ ๋“ค์–ด์˜จ๋‹ค๋ฉด 90๋งŒํผ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

๋ฐ˜๋Œ€๋กœ ์‚ฌ์ด์ฆˆ๋ฅผ 100์œผ๋กœ ์žก์•„๋†จ๋Š”๋ฐ 101์ด ๋“ค์–ด์˜จ๋‹ค๋ฉด 200ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ๋‹ค์‹œ ์ƒ์„ฑํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ฒจ์ฃผ์–ด์•ผ ํ•œ๋‹ค ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€์ž‘์—…์„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ํ•œ๋‹ค

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