Computer Science/Data structure

์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ์ดˆ ( ๊ณต๊ฐ„ ๋ณต์žก๋„, ์‹œ๊ฐ„ ๋ณต์žก๋„, ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• Big-O)

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2023. 7. 16.

์ปดํ“จํ„ฐ์˜ ์ž์›์€ ํ•œ์ •์ ์ด๋ฏ€๋กœ ์ œํ•œ๋œ ์ œ์•ฝ์กฐ๊ฑด ๋‚ด์— ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์•ผํ•œ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ์™€ ์“ฐ์ž„์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.

 

์ž๋ฃŒ =(data) ์ž๋ฃŒ๊ตฌ์กฐ=(data structure)

์ž๋ฃŒ(๋ฐ์ดํ„ฐ)๋ฅผ ์–ด๋””์— ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ• ์ง€

-> ๊ฒ€์ƒ‰, ์ˆœํšŒ(iterate) , ์ €์žฅ, ์‚ญ์ œ, ๋ณ€๊ฒฝ

 

์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์ง•

๊ฐ๊ฐ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์žฅ์ ๊ณผ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜

์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ๋™์ž‘๋“ค์˜ ์ ˆ์ฐจ

 

 

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•

์˜ˆ์‹œ) ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐ€๋Š” ๋ฐฉ๋ฒ•

๋ฒ„์Šค, ์ง€ํ•˜์ฒ , ๊ฑธ์–ด์„œ ๊ฐ€๋Š” ๋ฐฉ๋ฒ• ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ฑ์ด ์žˆ๋Š”๋ฐ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค์„ ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์  ๋ฐฉ๋ฉด์—์„œ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

 

์ ๊ทผ ํ‘œ๊ธฐ๋ฒ•

1. ๋น…์˜ค(Big-O) ํ‘œ๊ธฐ๋ฒ•( ์ƒํ•œ ์ ๊ทผ)

2. ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•( ์ƒํ•œ/ํ•˜ํ•œ ์ ๊ทผ)

3. ์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•(ํ•˜ํ•œ ์ ๊ทผ)

 

BIG-O์˜ ํŠน์ง•

์‹œ๊ฐ„ ๋ณต์žก๋„ ํฌ๊ธฐ ๋น„๊ต

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

๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ๊ณต๊ฐ„

 

๋ฐ์ดํ„ฐ ์–‘์˜ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ๊ณต๊ฐ„์˜ ๋ณ€ํ™”

์˜ˆ์ƒ ์†Œ์š” ๊ณต๊ฐ„ ์ธก์ •

 

 

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

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„

๋ฐ์ดํ„ฐ ์–‘์˜ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ์†Œ์š” ์‹œ๊ฐ„์˜ ๋ณ€ํ™”

์˜ˆ์ƒ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ์ธก์ •

์ง€์—ฐ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์™œ ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ทผ๊ฑฐ

 

O(1)

์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

case:

๋ฐฐ์—ด์˜ Random Access

Hash function

 

O(N)

์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•ด์„œ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

case:

for ๋ฌธ

 

 

O(N∧2)

์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•ด์„œ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

case:

์ด์ค‘ for๋ฌธ

 

O(logN)

์ด์ง„ ํƒ์ƒ‰(Binary search) (์—…๋‹ค์šด ๊ฒŒ์ž„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•จ)

ํ•œ๋ฒˆ ๊ณ„์‚ฐ์ด ๋ ๋•Œ ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ์ ˆ๋ฐ˜์”ฉ ์ค„์–ด๋“œ๋Š” formular๊ฐ€ O(logN)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

 

K๋ฒˆ ์‹œํ–‰์„ ํ• ๋•Œ logN์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

 

 

O(NlogN)

case:

Merge sort

์ ˆ๋ฐ˜์”ฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๊ณ  ๋‚˜๋ˆˆ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.

'Computer Science > Data structure' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜- List ๋ฆฌ์ŠคํŠธ  (0) 2023.07.17

๋Œ“๊ธ€