01) ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

-      ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฐœ๋…

๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์ž๋ฃŒ์˜ ๊ณต๊ฐ„ ๋ฐ ์‹œ๊ฐ„์  ์˜๋ฏธ์˜ ํšจ์œจ์  ์‚ฌ์šฉ(์ฒ˜๋ฆฌ)๋ฅผ ์œ„ํ•ด ๊ตฌ์กฐํ™”ํ•œ ๊ฒƒ.

-      ๋ฐ์ดํ„ฐ ์ •๋ณด

์„ ํ˜•๊ตฌ์กฐ(๋ฐฐ์—ด), ๋น„์„ ํ˜•๊ตฌ์กฐ(ํฌ์ธํ„ฐ)

-      ์ •๋ณด์ฒ˜๋ฆฌ

-      ๋‹จ์œ„

Bit โ€“ Byte โ€“ Field โ€“ Record โ€“ File โ€“ DB

Bit๋ž€ ์ •๋ณดํ‘œํ˜„์˜ ์ตœ์†Œ๋‹จ์œ„ (on/off) Binary Digit(2์ง„์ˆ˜)

Byte(= 4 Bit)  ๋ฌธ์ž ํ‘œํ˜„์˜ ์ตœ์†Œ๋‹จ์œ„, ์ ˆ๋Œ€ ์ฃผ์†Œ๊ฐ€ ์žˆ์Œ.

Field๋ž€ ๋ฌธ์ž๊ฐ€ ๋ชจ์ธ ์˜๋ฏธ์žˆ๋Š” ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„. (๋…ผ๋ฆฌ์  ์ž๋ฃŒ ๋‹จ์œ„)

Record๋ž€ ์—ฐ๊ด€๋œ ํ•„๋“œ๋“ค์˜ ๋ชจ์ž„.

File์ด๋ž€ ์—ฐ๊ด€๋œ ๋ ˆ์ฝ”๋“œ๋“ค์˜ ๋ชจ์ž„. ๊ธฐ์–ต์žฅ์†Œ์— ์ €์žฅ๋˜์–ด ์—ฐ์†์ ์ธ ๋ฌธ์ž์—ด๋“ค์˜ ๋ชจ์ž„.

-      ํ‘œํ˜„

์ˆ˜์น˜๋ฐ์ดํ„ฐ : ์ •์ˆ˜์™€ ์‹ค์ˆ˜, 2์ง„๋ฒ• 8์ง„๋ฒ• 16์ง„๋ฒ• 10์ง„๋ฒ•.

-      ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜

์–ด๋–ค ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ์™€ ๋ฐฉ๋ฒ•์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ธฐ์ˆ ํ•ด ๋†“์€ ๋ช…๋ น๋“ค์˜ ์ง‘ํ•ฉ.

-      ์•Œ๊ณ ๋ฆฌ์ฆ˜ 5๋Œ€ ์กฐ๊ฑด

์ž…๋ ฅ, ์ถœ๋ ฅ, ๋ช…ํ™•์„ฑ, ์œ ํ•œ์„ฑ, ์‹ค์ œ์„ฑ

0๊ฐœ ์ด์ƒ ์ž…๋ ฅ๋ฐ์ดํ„ฐ ํ•„์š”, ํ•˜๋‚˜ ์ด์ƒ ๊ฒฐ๊ณผ ์ถœ๋ ฅ, ๋ช…๋ น์ด ์• ๋งค๋ชจํ˜ธX ๋ช…ํ™•ํ•˜๊ฒŒ ์กด์žฌ, ์œ ํ•œ ๋ฒˆ ์‹คํ–‰ ํ›„ ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ๋˜์–ด์•ผํ•จ, ์‹ค์งˆ์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด์•ผํ•จ.

-      ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„ 3๊ฐœ ๋ฐฉ๋ฒ•

์‹œ๊ฐ„ ๋ณต์žก๋„(์ˆ˜ํ–‰๋Ÿ‰) ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ถ„์„ํ•จ. (์ˆ˜ํ–‰๋Ÿ‰์„ ์ฐจ์ˆ˜(Degree)๋กœ ํ‘œํ˜„)

big-o ํ‘œํ˜„๋ฒ• > ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰์— ์žˆ์–ด ์—ฐ์‚ฐ ์ฐจ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฒƒ์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ฐจ์ˆ˜๋กœ ํ‘œํ˜„.

big-omega ํ‘œํ˜„๋ฒ• > โ€œโ€ ์ฐจ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฒƒ์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ฐจ์ˆ˜๋กœ ํ‘œํ˜„

big-theta ํ‘œํ˜„๋ฒ• > ์˜ค์™€ ์˜ค๋ฉ”๊ฐ€ ํ‘œํ˜„๋ฒ• ๊ต์ฐจ๋˜๋Š” ๋ถ€๋ถ„. ์ตœ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ ํ‘œํ˜„.

 

-      ๋‹คํ•ญ์‹œ๊ฐ„, ์ง€์ˆ˜์‹œ๊ฐ„, ์˜์‚ฌ์ฝ”๋“œ

๋‹คํ•ญ์‹œ๊ฐ„ = ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ (big-O ํ‘œํ˜„๋ฒ•)

์ง€์ˆ˜์‹œ๊ฐ„ = ์‹œ๊ฐ„๋ณต์žก๋„

 

 

02) ์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๋ฐฐ์—ด

-      ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™” 3๊ฐ€์ง€

1.     float f = 3.14; - ๋ฐ์ดํ„ฐ ํƒ€์ž…. ์ถ”์ƒ์ž๋ฃŒํ˜• ์„ ์–ธ.

2.     #include <stdio.h>

3.     ๊ฐ์ฒด(Object) โ€“ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์‚ฌ์šฉ๋œ๋˜๋Š” ํ•จ์ˆ˜(๋ฉ”์†Œ๋“œ) ํ•ฉ์นœ ๊ฒƒ

์บก์Аํ™”

-      ๋ฐฐ์—ด์˜ ์ •์˜

์—ฐ์†์ ์ธ ๊ธฐ์–ต์žฅ์น˜์— 1๊ฐœ์˜ ๋ธ”๋ก์œผ๋กœ ์ €์žฅ๋˜๋Š” ๊ฒƒ.

์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์น˜๋œ ๊ธฐ์–ต์žฅ์†Œ์˜ ์œ„์น˜, ์ธ๋ฑ์Šคํƒ€ ๊ฐ’์„ mappingํ•˜์—ฌ ์‚ฌ์šฉ.

-      ๋ฐฐ์—ด์—์„œ์˜ ์›์†Œ ์œ„์น˜ (n์ฐจ์› ๋ฐฐ์—ด C์–ธ์–ด๋กœ ํ‘œํ˜„, index๊ฐ€ 1์ธ๊ฒฝ์šฐ์™€ 0์ธ ๊ฒฝ์šฐ ์œ„์น˜๊ณ„์‚ฐ

<0๋ฒˆ์ง€ ์ฃผ์†Œ ์•Œ๋•Œ๋Š”>

1์ฐจ์› ๋ฐฐ์—ด : A[0]์˜ ์œ„์น˜์ฃผ์†Œ + (I * ์›์†Œํฌ๊ธฐbyte)

2์ฐจ์› ๋ฐฐ์—ด : A(u1,u2)์—์„œ (i1,i2)์˜ ํŠน์ • ์œ„์น˜๋Š”

                     location = i1 * u2 +i2

3์ฐจ์› ๋ฐฐ์—ด : A(u1,u2,u3)์—์„œ (i1,i2,i3)์˜ ํŠน์ • ์œ„์น˜๋Š”

                     location = i*u2*u3 + i2*u3 + i3

(๋ฌธ์žํ˜• = 1Byte, ์ •์ˆ˜ํ˜• = 2Byte, ์‹ค์ˆ˜ํ˜• = 3Byte)

 

<์ƒ๋Œ€ ํŠน์ •์œ„์น˜์•Œ ๋•Œ>

2์ฐจ์› ๋ฐฐ์—ด : location(row) = u2*(i1-1)+i2

                     location(column) =

-      ํฌ์†Œํ–‰๋ ฌ์˜ ํŠน์„ฑ

2์ฐจ์› ๋ฐฐ์—ด์—์„œ 0์ธ ์š”์†Œ๊ฐ€ ๋งŽ์€ ๋ฐฐ์—ด. m*n์˜ ํ–‰๋ ฌ์—์„œ 0์ด ์•„๋‹Œ ์›์†Œ๋“ค๋กœ๋งŒ ๊ณจ๋ผ ํ–‰๋ ฌ์„ ๋‹ค์‹œ ๊ตฌ์„ฑํ•˜๊ธฐ์—  ๋ฐ์ดํ„ฐ๊ฐ€ m*n๊ฐœ ๋ณด๋‹ค ํ›จ์”ฌ ์ ์œผ๋ฏ€๋กœ ๊ธฐ์–ต์žฅ์†Œ๋ฅผ ์ ˆ์•ฝํ•˜๊ณ  ๋น ๋ฅธ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

03) ๋ฆฌ์ŠคํŠธ

-      ์„ ํ˜•๋ฆฌ์ŠคํŠธ ์ •์˜

๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ์–ต์žฅ์†Œ์— ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋˜์–ด, ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ์œผ๋กœ ๊ธฐ์–ต์žฅ์†Œ ํ™œ์šฉ๋„๊ฐ€ ๋†’์œผ๋ฉฐ, ์ž์ฃผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ์— ์œ ๋ฆฌํ•˜๋‹ค.

๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‹œ์— ์—ฌ๋ถ„์˜ ๊ธฐ์–ต๊ณต๊ฐ„์„ ํ™•๋ณดํ•ด์•ผ ํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€์™€ ์‚ญ์ œ์‹œ ๋งŽ์€ ๋ฐ์ดํ„ฐ์˜ ์ด๋™์ด ํ•„์š”ํ•˜๋‹ค.

์ˆœ์ฐจ๋ฆฌ์ŠคํŠธ๋ž€ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์„ ํ˜•๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ.

-      ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋ฐฉ๋ฒ•

n๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ์„ ํ˜•๋ฆฌ์ŠคํŠธ์—์„œ k๋ฒˆ์งธ์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‹œ (n-k+1) ๋ฐ์ดํ„ฐ ์ด๋™ ๋ฐœ์ƒ.

n๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ์„ ํ˜•๋ฆฌ์ŠคํŠธ์—์„œ k๋ฒˆ์งธ์— ๋ฐ์ดํ„ฐ ์‚ญ์ œ์‹œ (n-k) ๋ฐ์ดํ„ฐ ์ด๋™ ๋ฐœ์ƒ.

-      ๋ฐ์ดํ„ฐ ์ด๋™์˜ ๋ฌธ์ œ์ 

ํ‰๊ท ์ ์œผ๋กœ n/2 ๋งŒํผ (์ ˆ๋ฐ˜) ์ด๋™ํ•จ์œผ๋กœ, ๋งŽ์€ ์‹œ๊ฐ„ ๋‚ญ๋น„.

๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ์›์†Œ๋ฅผ ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„์„ ์œ„ํ•ด ์ตœ๋Œ€๊ณต๊ฐ„์„ ๊ฐ–๋Š” ๊ธฐ์–ต์žฅ์†Œ๋ฅผ ํ• ๋‹นํ•˜๋ฉด์„œ ๊ธฐ์–ต๊ณต๊ฐ„์˜ ๋‚ญ๋น„.

๋งŒ์ผ ๊ธฐ์–ต์žฅ์†Œ๋ฅผ ์ž‘๊ฒŒํ–ˆ๋‹ค๋ฉด, ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฝ์ž… ์—ฐ์‚ฐ์ด ๋ฐœ์ƒํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์„ ์ดˆ๊ณผํ•œ ๊ฒƒ์œผ๋กœ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค.

-      ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๊ฐœ๋…

ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ๋…ธ๋“œ๊ฐ€ ๋‹ค์Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ธํ„ฐ(์ฃผ์†Œ)๋ฅผ ๊ฐ€์ง€๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ.

ํฌ์ธํ„ฐ๋Š” ๋‹ค์Œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ฐ์ดํ„ฐ์™€ ์ฃผ์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๋…ธ๋“œ์— ํ‘œํ˜„ํ•จ์œผ๋กœ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉ.

๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€์™€ ์‚ญ์ œ๊ฐ€ ๊ฐ„๋‹จํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์ด๋™์ด ํ•„์š”์—†๋‹ค.

-      ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์ข…๋ฅ˜

๋‹จ์ˆœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

ํ™˜ํ˜• ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

์ด์ค‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

์ด์ค‘ ํ™˜ํ˜• ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

-      ์ถ”๊ฐ€, ์‚ญ์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ + ๊ธฐ์–ต๊ณต๊ฐ„ ํ• ๋‹นํ•ด์ œ

 

 

04) ์Šคํƒ๊ณผ ํ

-      ์Šคํƒ์˜ ๊ฐœ๋…

๋ฐ์ดํ„ฐ์˜ ์ž…์ถœ๋ ฅ์ด ํ•œ์ชฝ๋ฐฉํ–ฅ์—์„œ๋งŒ ์ˆ˜ํ–‰๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ (LIFO)

Top ํฌ์ธํ„ฐ ์‚ฌ์šฉํ•˜๋ฉฐ, Push๋Š” ์ž…๋ ฅ, Pop์€ ์ถœ๋ ฅ.

-      ์ถ”๊ฐ€ ์‚ญ์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

<์ถ”๊ฐ€> if(TOP>=N) {printf(โ€œOverflowโ€);

else{

                     s[top] = data;

                     top = top+1;

                     }

<์‚ญ์ œ>

                     if(top==0) {printf(โ€œUnderflowโ€)}

                     else{

                     top=top-1;

                     s[top]=NULL;

-      ์Šคํƒ์˜ ์ด์šฉ๋ถ„์•ผ

์ž๋™ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ. (c์–ธ์–ด ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ๋ฒ”์œ„ ์ง€์ •)

์ˆ˜์‹ ์—ฐ์‚ฐ์— ์ด์šฉ. (์—ฐ์‚ฐ์ž ์Šคํƒ๊ณผ ํ”ผ์—ฐ์‚ฐ์ž ์Šคํƒ์„ ์‚ฌ์šฉ)

์ˆ˜์‹์˜ ํ‘œํ˜„๊ณผ ์—ฐ์‚ฐ์— ์‚ฌ์šฉ.

-      ํ์˜ ๊ฐœ๋…

๋ฐ์ดํ„ฐ์˜ ์ž…์ถœ๋ ฅ์ด ์„ ํ˜•๋ฆฌ์ŠคํŠธ์˜ ์–‘์ชฝ ๋์—์„œ ๋ชจ๋‘ ์ˆ˜ํ–‰์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(FIFO)

์ž…๋ ฅ์‹œ tail ํฌ์ธํ„ฐ ์‚ฌ์šฉ, ์ถœ๋ ฅ์‹œ head ํฌ์ธํ„ฐ ์‚ฌ์šฉ.

-      ํ์˜ ์ถ”๊ฐ€ ์‚ญ์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

<์ถ”๊ฐ€> if(tail>=n) printf(โ€œOverflowโ€)

                     Q[tail]=data;

tail= tail+1

<์‚ญ์ œ> if(head == 0 && tail ==0) {printf(โ€œUnderflowโ€)}

                     if(head < tail){

                                Q[head] = NULL;

                                head = head +1;

                                if (head == tail) { //์–ธ๋”ํ”Œ๋กœ์šฐ

                                           return

                                           }

                                }

 

circular queue

์ถ”๊ฐ€

                     tail=(tail+1)%n

if(head==tail){

                                if(Q[tail]==NULL){

                                           Q[tail] = data

                                           printf(โ€œoverflowโ€);

                                           return}

 

05) ํŠธ๋ฆฌ

- ํŠธ๋ฆฌ์˜ ์ •์˜

๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ณด์˜ ๊ฐ ํ•ญ๋ชฉ๋“ค์„ ๊ณ„์ธต์ ์œผ๋กœ ์—ฐ๊ด€๋˜๋„๋ก ๊ตฌ์กฐํ™” ์‹œํ‚ค๋Š” ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ.

๋‹จํ•˜๋‚˜์˜ ๋ฃจํŠธ๋…ธ๋“œ๊ฐ€ ์กด์žฌ, ๋ฃจํŠธ๋…ธ๋“œ์—์„œ ๊ฐ„์„ (edge)์œผ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ ์—ฐ๊ฒฐ.

-      ํŠธ๋ฆฌ์˜ ์ข…๋ฅ˜

์ผ๋ฐ˜ํŠธ๋ฆฌ : 3๊ฐœ ์ด์ƒ์˜ ๋งํฌ๋ฅผ ๊ฐ€์ง„ ํŠธ๋ฆฌ

์ด์ง„ํŠธ๋ฆฌ : ํŠธ๋ฆฌ์˜ ์ฐจ์ˆ˜๊ฐ€ 2 ์ดํ•˜์ธ ํŠธ๋ฆฌ.

           ์ •์ด์ง„ํŠธ๋ฆฌ(full binary) : ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ 2^k โ€“ 1 ์ธ ํŠธ๋ฆฌ

           ์ „์ด์ง„ํŠธ๋ฆฌ(complete binary) : ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ s^(k-1) < n < s^k -1 ์ธ ํŠธ๋ฆฌ

           skwed tree : ํ•œ์ชฝ๋ฐฉํ–ฅ์œผ๋กœ ์น˜์šฐ์นœ ํŠธ๋ฆฌ.

Threaded binary tree : ํŠธ๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” NULL ํฌ์ธํ„ฐ ๊ฐ’์„ ํŠธ๋ฆฌ ์šดํ–‰์— ์‚ฌ์šฉ.

                     ์ •์ƒ์—ฐ๊ฒฐ์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0.  ํ‘œ๋ณด์…ˆ.

-      ํŠธ๋ฆฌ์˜ ๊ตฌํ˜„(ํ‘œํ˜„)

๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• :          

๋ถ€๋ชจ๋…ธ๋“œ ์ ‘๊ทผ ์šฉ์ด. ์ •์ด์ง„ ํŠธ๋ฆฌ๋Š” ๊ธฐ์–ต์žฅ์†Œ๋‚ญ๋น„ ์ ์Œ. ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‚ญ์ œ์‹œ ๋ฐ์ดํ„ฐ ์ด๋™ ๋ฐœ์ƒ. ์‚ฌํ–ฅ์ด์ง„ํŠธ๋ฆฌ๋Š” ๊ธฐ์–ต์žฅ์†Œ ๋‚ญ๋น„.

๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• :

๋…ธ๋“œ์— ํฌ์ธํ„ฐ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉฐ ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•.

n๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„ k์ง„ ํŠธ๋ฆฌ๋Š” n*k๊ฐœ์˜ ๋งํฌ์ˆ˜๋ฅผ ๊ฐ€์ง. n(k-1)+1 ๊ฐœ์˜ ๋„(NULL) ๋งํฌ ์ˆ˜๋ฅผ ๊ฐ€์ง.(Threaded binary tree ํ‘œ)

-      ํŠธ๋ฆฌ์˜ ์šดํ–‰(์ˆœํšŒ)

ํŠธ๋ฆฌ ๋‚ด ํŠน์ • ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋ฉฐ, ํŠธ๋ฆฌ ๋‚ด์˜ ํŠน์ • ๋…ธ๋“œ๋Š” 1๋ฒˆ๋งŒ ์ฐธ์กฐ.

Inorder :  Left, Root, Right  node ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธ.

Preorder : Root, Left, Right  node ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธ.

Postorder : Left, Right, Root  nood ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธ.

 

 

06) ๊ทธ๋ž˜ํ”„

- ์ •์˜

๊ฐ ๋‹จ์œ„ ์ •๋ณด๋ฅผ ์ •์ ์œผ๋กœ ํ‘œํ˜„. ๊ฐ ์ •์ ์„ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ตฌ์กฐํ™”์‹œํ‚จ ์ž๋ฃŒ๊ตฌ์กฐ.

๊ทธ๋ž˜ํ”„ G๋Š” ์ •์ (Vertex)๊ณผ ๊ฐ„์„ (edge)๋กœ ๊ตฌ์„ฑ๋Œ. Cycle์„ ํ˜•์„ฑํ•จ.

           - ์šฉ์–ด

Adjacency(์ธ์ ‘), Path(๊ฒฝ๋กœ), length(๊ฐ„์„ ์˜ ์ˆ˜), loop(๊ฒฝ๋กœ๊ธธ์ด=1, ์ž๊ธฐ์ž์‹ ), cycle(์‹œ์ž‘์ ์—์„œ ๋Œ์•„์˜ค๋Š” ๊ฒฝ์šฐ), distancy(์ตœ๋‹จ๊ฒฝ๋กœ๊ธธ์ด), degree(์ฐจ์ˆ˜. ํ•œ ์ •์ ์ด ๊ฐ€์ง€๋Š” ๊ฐ„์„ ์˜ ์ˆ˜)

-      ๊ทธ๋ž˜ํ”„์˜ ํ‘œํ˜„

์ธ์ ‘ํ–‰๋ ฌ : ๊ทธ๋ž˜ํ”„๋ฅผ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ํ‘œํ˜„. ์ธ์ ‘ํ–‰๋ ฌ์ด A๋ผ ํ•  ๋•Œ A(i,j) ๊ฐ€ 1์ด๋ฉด i์™€ j ์ •์  ์—ฐ๊ฒฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 0์œผ๋กœ ํ‘œํ˜„

-      ๊ทธ๋ž˜ํ”„์˜ ์šดํ–‰(๊ตฌํ˜„)

DFS(Depth First Search) ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰

1.     ์‹œ์ž‘์ •์  v๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๋ฐฉ๋ฌธ

2.     V์— ์ธ์ ‘ํ•œ ์ •์  ๊ฐ€์šด๋ฐ ๋ฐฉ๋ฌธ๋˜์ง€ ์•Š์€ ์ •์  ๋ฐฉ๋ฌธ.

3.     ๋ชจ๋“  ์ •์  ๋ฐฉ๋ฌธํ•˜๋ฉด, ๋ฐฉ๋ฌธ๋˜์ง€ ์•Š์€ ์ธ์ ‘ํ•œ ๋งˆ์ง€๋ง‰ ์ •์  ๋ฐฉ๋ฌธ.

4.     ๋ชจ๋“  ์ •์  ๋ฐฉ๋ฌธํ•˜๋ฉด ์ข…๋ฃŒ

BFS(Breadth First Search) ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰

1.     ์‹œ์ž‘์ •์  v๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๋ฐฉ๋ฌธ

2.     V๋ฅผ ํ์— ์ €์žฅํ•˜๊ณ  ๋‚ด์šฉ ์ถœ๋ ฅ

3.     ํ์— ์ธ์ ‘ํ•œ ์ •์ ์„ ๊ฐ€์ง€๊ณ  (2)์ˆ˜ํ–‰

4.     ํ๊ฐ€ Underflow ๋˜๋ฉด ์ข…๋ฃŒ.

-      ๊ทธ ์™ธ

์‹ ์žฅํŠธ๋ฆฌ(Spanning Tree) : ๊ทธ๋ž˜ํ”„ G์˜ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•œ ํŠธ๋ฆฌ

์ตœ๋‹จ๊ฒฝ๋กœ(Shortest Path) : ํ•œ ์ •์ ์—์„œ ์ž„์˜์˜ ์ •์  ์ตœ๋‹จ ๊ฒฝ๋กœ์˜ ๊ฐ’.

                                           A^k[i][j]  > k๋ณด๋‹ค ํฐ ์ •์  ์ง€๋‚˜์ง€ ์•Š๊ณ  i์—์„œ j๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ.

07) ํƒ์ƒ‰

           - ํƒ์ƒ‰์ข…๋ฅ˜

์ˆœ์ฐจํƒ์ƒ‰(Sequential Search) : ์ธ๋ฑ์Šค ์ฆ๊ฐ€or๊ฐ์†Œ ์‹œ์ผœ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํƒ์ƒ‰

Binary ํƒ์ƒ‰  : ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ 1/2์”ฉ ๋ฒ”์œ„ ์ค„์ด๋ฉด์„œ ํƒ์ƒ‰

Fibonacci ํƒ์ƒ‰ : ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๊ฐ’ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•ด ํƒ์ƒ‰

Interpolation ํƒ์ƒ‰ : ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ํŽธ์ฐจ๋ฒ”์œ„๊ฐ€ ์ผ์ •ํ•  ๋•Œ ํšจ์œจ์ 

Block ํƒ์ƒ‰ : ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธ”๋ก๋‹จ์œ„๋กœ ๊ตฌ๋ถ„. ๋ธ”๋ก๋‚ด ๊ฐ€์žฅ ํฐ๊ฐ’์„ ์ €์žฅํ•˜์—ฌ ์ด ๊ฐ’๊ณผ ์ฐพ๊ณ ์žํ•˜๋Š” ๊ฐ’์ด ์–ด๋А ๋ธ”๋ก์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํŒ๋‹จํ›„ ์ˆœ์ฐจํƒ์ƒ‰ํ•œ๋‹ค.

 

08) ์ด์ง„ํƒ์ƒ‰ ํŠธ๋ฆฌ  - ๊ฐœ๋…๋งŒ ์•Œ๊ธฐ

์ขŒ์ธก์€ ๋ฃจํŠธ๋ณด๋‹ค ์ž‘์€๊ฐ’, ์šฐ์ธก์€ ๋ฃจํŠธ๋ณด๋‹ค ํฐ๊ฐ’.

09) ํ•ด์‹ฑ

-      ํ•ด์‹ฑ์˜ ๊ฐœ๋…

ํ•ด์‹œํ•จ์ˆ˜์— ์˜ํ•˜์—ฌ ๊ณ„์‚ฐ๋œ ํ‚ค ๊ฐ’์˜ ์ฃผ์†Œ๋กœ ์ง์ ‘ ์ ‘๊ทผ.

โ€œkey-to-address transformationโ€

 ํŠน์ • ๊ทœ์น™์— ๋”ฐ๋ผ ์ฃผ์–ด์ง„ ํ‚ค ๊ฐ’์„ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ๊ธฐ์–ต๊ณต๊ฐ„์— ํ‚ค์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ €์žฅ.

ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ ˆ์ฝ”๋“œ์˜ ์ฃผ์†Œ๋ฅผ ์‚ฐ์ถœํ•จ์œผ๋กœ์„œ ๊ฒ€์ƒ‰์ž‘์—… ์ˆ˜ํ–‰.

-      ํ•ด์‹œ ํ•จ์ˆ˜ ์„ค๋ช…

์ž…๋ ฅ๋œ ํ‚ค ๊ฐ’์„ ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•จ์ˆ˜.

์ค‘๊ฐ„์ œ๊ณฑํ•จ์ˆ˜, ๋‚˜๋ˆ„๊ธฐํ•จ์ˆ˜, Foldingํ•จ์ˆ˜, ๊ธฐ์ˆ˜๋ณ€ํ™˜๋ฒ•, ์ˆซ์ž๋ถ„์„๋ฒ•

-      ์ถฉ๋Œ์‹œ ์˜ค๋ฒ„ํ”Œ๋กœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋ฒ„ํ‚ท์ด ์—ฌ๋Ÿฌ ์Šฌ๋กฏ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉด ๋‹ค๋ฅธ ์Šฌ๋กฏ์— ์ €์žฅ.

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ์Šฌ๋กฏ์ด ์ฑ„์›Œ์กŒ๋‹ค๋ฉด ๋‹ค๋ฅธ ๊ธฐ์–ต์žฅ์†Œ๋ฅผ ์ฐพ์•„ ํ‚ค ๊ฐ’์„ ์ €์žฅํ•จ.

๊ฐœ๋ฐฉ์ฃผ์†Œ๋ฒ• : ํ•œ ๋ ˆ์ฝ”๋“œ(Data)์˜ ํ‚ค๋กœ๋ถ€ํ„ฐ ๊ด€๋ จ๋œ ์ผ๋ จ์˜ ๋ฒ„ํ‚ท ์ฃผ์†Œ ์ƒ์„ฑ.

                     ์ถฉ๋Œ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ๋ฒ„ํ‚ท์˜ ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ๋น„์–ด์žˆ๋Š” ๋ฒ„ํ‚ท ๋ฐœ๊ฒฌํ• ๋•Œ๊นŒ์ง€ ์ฐพ์Œ.

ํ์‡„์ฃผ์†Œ๋ฒ•(์ฒด์ธ๋ฒ•) : ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ๋™์˜์–ด ๋ณ„๋กœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•.

                                ํ•ฉ๋ณ‘ ์ฒด์ธ๋ฒ•, ๋ถ„๋ฆฌ ์ฒด์ธ๋ฒ• ์œผ๋กœ ๋‚˜๋‰จ.

 

11) ์ •๋ ฌ

           - ์ •๋ ฌ์˜ ์ •์˜

๋ฌด์งˆ์„œํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ •ํ•œ key๊ฐ’์— ์˜ํ•ด ์žฌ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ณผ์ •.

์ž‘์—…๊ฒฐ๊ณผ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๊ตฌ๋ถ„.

-      ์ •๋ ฌ์˜ ์ข…๋ฅ˜

์‚ฝ์ž…๋ฒ• : insertion sort, shell

๊ตํ™˜๋ฒ• : bubble, selection, quick

์„ ํƒ๋ฒ• : heap

๋ณ‘ํ•ฉ๋ฒ• : z-way-merge

๋ถ„๋ฐฐ๋ฒ• : radix

-      8๊ฐ€์ง€ ์ค‘ 5๊ฐœ ๋ฐฉ๋ฒ•๋ก  + ์ฝ”๋”ฉ๋ฐฉ๋ฒ•

Bubble Sort : ๊ฐ€์žฅ ํฐ๊ฐ’์„ ๋งจ ๋’ค๋กœ ์ด๋™ํ•ด๊ฐ€๋ฉด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•. ๋‹จ๊ณ„์ ์œผ๋กœ ํฐ ๊ฐ’์„ ์ œ์™ธํ•œ๋‹ค.

Select Sort : ๊ฐ€์žฅ ์ž‘์€๊ฐ’์„ ๋งจ ์•ž์œผ๋กœ ์ด๋™ํ•ด๊ฐ€๋ฉด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•. ๋‹จ๊ณ„์ ์œผ๋กœ ์ž‘์€๊ฐ’์„ ์ œ์™ธํ•œ๋‹ค.

Quick Sort (์žฌ๊ท€ํ•จ์ˆ˜) : ํŠน์ •ํ‚ค๊ฐ’์ธ ํ”ผ๋ฒ—์„ค์ •ํ•˜์—ฌ ์ž‘์€๊ฐ’ ํฐ๊ฐ’ ๋ ˆ์ฝ”๋“œ ๋ถ„๋ฆฌํ•˜์—ฌ ์„œ๋ธŒ๋ฆฌ์ŠคํŠธ ๊ตฌ์„ฑ. ๊ฐ€์žฅ๋น ๋ฅธ์ •๋ ฌ์ˆ˜ํ–‰.

Insertion Sort( ์‚ฝ์ž…์ •๋ ฌ) ์ž„์‹œ๊ฐ’ ์ •ํ•ด์„œ ์ž‘์€์ง€ ํฐ์ง€ ๋น„๊ต.

Shell Sort : ์ผ์ •ํ•œ ๊ฑฐ๋ฆฌ๋งŒํผ ๋–จ์–ด์ง„ 2๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋น„๊ตํ•˜์—ฌ ํฌ๋ฉด ๋ณด๊ด€ํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด ์ •๋ ฌ.

 

Heap Sort : ๋ฐ์ดํ„ฐ๋ฅผ ํŠธ๋ฆฌ๋กœ ํ‘œํ˜„. ์ตœํ•˜์œ„ ๋ ˆ๋ฒจ์˜ ์šฐ์ธก ๋…ธ๋“œ๋ถ€ํ„ฐ ๋ถ€๋ชจ๋…ธ๋“œ์™€ ๋น„๊ต. ์ž๋…ธ๋“œ ๊ฐ’์ด ์˜ค๋ฉด ๋ถ€๋ชจ๋…ธ๋“œ์™€ ๊ตํ™˜.

๋ฃจํŠธ๋…ธ๋“œ์— ๊ฐ€์žฅ ํฐ๊ฐ’์ด ์œ„์น˜ํ•˜๋ฉด ์ตœํ•˜์œ„ ๋ ˆ๋ฒจ์˜ ์šฐ์ธก ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์™€ ๊ตํ™˜ ๋’ค , ์ด ๊ฐ’์„ ๋‹ค์Œ heap์—์„œ ์ œ์™ธํ•œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
Liky