๐Ÿ“–Array

๋™์ผํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅํ•˜๋Š” ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ

  • element : ๋ฐฐ์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ๊ฐ์˜ ๊ฐ’
  • index : ๋ฐฐ์—ด์—์„œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆซ์ž

๐Ÿ“Ž์ •์  ๋ฐฐ์—ด

์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์ƒ ์—ฐ์†์ ์ด๊ณ  ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฏธ๋ฆฌ ํ• ๋‹น๋œ ํฌ๊ธฐ๋งŒํผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด

  • ๋ฐ‘์—์„œ ์„œ์ˆ ํ•  ํŠน์ง•, ์žฅโ€ข๋‹จ์ ์€ ๋‹ค ์ •์  ๋ฐฐ์—ด ๊ธฐ์ค€

๐Ÿ“Ž๋™์  ๋ฐฐ์—ด

๋ฏธ๋ฆฌ ์ดˆ๊นƒ๊ฐ’์„ ์ž‘๊ฒŒ ์žก์•„ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ๊ฝ‰ ์ฑ„์›Œ์ง€๋ฉด ๋Š˜๋ ค, ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€/์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด

  • ๊ธฐ์กด Array์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ณ ์ž ๊ณ ์•ˆ
    • ํŒŒ์ด์ฌ : list
    • ์ž๋ฐ” : ArrayList
    • C++ : std::vector

Growth Factor

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žฌํ• ๋‹นํ•˜๋Š” ๋น„์œจ

  • ํŒŒ์ด์ฌ : ์ดˆ๋ฐ˜ 2๋ฐฐ, ์ „์ฒด์ ์œผ๋กœ๋Š” 1.125๋ฐฐ
  • C++์˜ std::vector, ๋ฃจ๋น„ : ๋”๋ธ”๋ง(2๋ฐฐ)
  • ์ž๋ฐ”์˜ ArrayList : 1.5๋ฐฐ

๐Ÿ“–ํŠน์ง•

  • ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ
  • ์„ ์–ธํ•  ๋•Œ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋ฉด ํฌ๊ธฐ ๊ณ ์ •
  • ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ํ•œ ์นธ๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง

๐Ÿ“–์žฅ์ 

  • ๋น ๋ฅธ ์ ‘๊ทผ : ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์ด ๋น ๋ฆ„
  • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํšจ์œจ์„ฑ : ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿ“–๋‹จ์ 

  • ์‚ฝ์ž…โ€ข์‚ญ์ œ์˜ ์–ด๋ ค์›€ : ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ด์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฝ์ž…โ€ข์‚ญ์ œ ์‹œ ํ•ด๋‹น ์œ„์น˜ ์ดํ›„์˜ ์š”์†Œ๋“ค์„ ๋ชจ๋‘ ์ด๋™ ํ•„์ˆ˜
  • ํฌ๊ธฐ ์ œํ•œ : ์ƒ์„ฑํ•  ๋•Œ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๊ณ  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ โ†’ ArrayList์™€ ๊ฐ™์€ ๋™์  ๋ฐฐ์—ด ์‚ฌ์šฉ

๐Ÿ“–์‚ฌ์šฉ

  • ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅํ•  ๋•Œ
  • ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ
  • ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์„ ๋•Œ
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฅธ ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•  ๋•Œ

๐Ÿ“–์‹œ๊ฐ„๋ณต์žก๋„

์—ฐ์‚ฐ์‹œ๊ฐ„๋ณต์žก๋„
์ ‘๊ทผO(1)
์‚ฝ์ž…O(n)
์‚ญ์ œO(n)
ํƒ์ƒ‰O(n)

๐Ÿ“–Array & Linked List