41
1 12 장 . 장장 장장장장 탐탐탐 탐탐 탐탐 , 탐탐탐 탐탐탐탐 탐탐탐 탐탐탐 탐탐탐 탐탐 탐탐탐탐 탐탐탐탐 탐탐탐탐 , 탐탐탐탐 , 탐탐 탐탐탐탐 탐 탐탐 탐탐탐탐탐 탐탐탐 탐탐탐탐 . 탐탐 탐탐탐탐탐 탐 탐탐 탐탐탐탐탐 탐탐탐 탐탐탐탐 . 탐탐탐탐 , 탐탐탐탐 , 탐탐 탐탐탐 탐탐탐 탐탐 탐탐탐 탐탐탐탐 . 탐탐 , 탐탐 탐탐 탐 탐탐 탐탐탐탐 탐탐탐 탐탐탐탐 . 탐탐탐 탐탐 탐탐탐탐 탐탐 탐탐탐 탐탐탐탐 .

탐색의 효율 삽입 , 삭제에 우선하여 탐색의 효율을 높이기 위한 알고리즘 학습목표 이진탐색 , 보간탐색 , 이진 탐색트리 등 기본 탐색방법의

Embed Size (px)

DESCRIPTION

탐색의 효율 삽입 , 삭제에 우선하여 탐색의 효율을 높이기 위한 알고리즘 학습목표 이진탐색 , 보간탐색 , 이진 탐색트리 등 기본 탐색방법의 효율을 이해한다 . 기수 탐색트리의 두 가지 구현방법과 효율을 이해한다 . 선형탐사 , 제곱탐사 , 이중 해시의 방법과 효율 차이를 이해한다 . 버켓 , 별도 체인 등 닫힌 어드레싱 방법을 이해한다 . 상황에 따른 자료구조 선택 방법을 이해한다. Section 01 키 , 레코드 , 탐색 - 탐색의 대상. 레코드 , 키 - PowerPoint PPT Presentation

Citation preview

PowerPoint
.
, , .
, .
.
http://cg.myongji.ac.kr
,


(Target Key), (Search Key)
,

,
[ 12-1]
12-1:
void BinarySearch(int A[ ], int First,  int Last,  int Key,  int& Index)
{ if (First > Last)                       
         index = -1;                     Index -1
  else
         if (Key = = A[Mid])            
                 Index = Mid;             Index
         else if (Key < A[Mid])         
                 BinarySearch(int A[], First, Mid-1, Value, Index);   
         else                            
                 BinarySearch(int A[], Mid+1, Last, Value, Index);   
   }
}


1 + (12-1)(150-20)/(170-20) = 10.5. 10 11
(12-1) 1 , (150-20)/(170-20) = 0.86
,

 

O(lg(LgN)) O(lgN)
[ 12-1]

1
2
3
4
5
6
7
8
9
10
11
12

20
42
55
62
78
92
112
132
140
145
150
170
http://cg.myongji.ac.kr



3 3.
(Level 0:0) + (Level 1: 1 + 1) + (Level 2: 2 + 2) + (Level 3: 3) = 9.
9/6 = 1.5 .
[ 12-2]

.
.
(Lazy Deletion)
(Batchwise)
http://cg.myongji.ac.kr
,
(Digital Search Tree)
5
A 00001

A = 00001, S = 10011, E = 00101, R = 10010, C = 00011, H = 01000, X = 11000
[ 11-4]
http://cg.myongji.ac.kr

O(lgN)
0 1 1/2
. lgN
O(N)
http://cg.myongji.ac.kr



A = 00001, S = 10011, E = 00101, R = 10010
E , 0 . A E . 00, . .
[ 12-5]
.
lgN

A, R, E, S

S R (One-Way Branch) . .
http://cg.myongji.ac.kr
M
, 4 00 , 01
. . .
[ 12-6]


1 1, 2 4 3 42 = 16
.
M , M
http://cg.myongji.ac.kr

O(lgN) 100,000 lg100,000 ≈ 17 .
. .
119 . : .

N
.
(Hash Table) .
http://cg.myongji.ac.kr
T[4453800]
(Identity Mapping)
.
T[3800] . 4453800 3800 .
(Stripping)
T[800]
445-3800 445-7800
(Collision)

,
http://cg.myongji.ac.kr
13 . h(8812152051218) = 8112528

(Digit Folding)
. h(8812152051218) = 8 + 8 + 1 + ... + 8 = 44
0 ≤ h(KEY) 0 ≤ 9*13 = 117
h(8812152051218) = 88 + 12 + 15 + ... + 8
(Modulo Function)
h(KEY) = KEY mod TableSize. Key . 0..(TableSize-1) .
1236 % 100, 3636 % 100
TableSize . (Prime Number) .
http://cg.myongji.ac.kr
ASCII
EACH = 69 + 65 + 67 + 72 = 273, WALL = 87 + 65 + 76 + 76 = 304
12-2: I
int HashByFold(stringClass Key)
{ int HashVal = 0;
      HashVal += Key[i];
int HashByFold(stringClass Key)
{ int HashVal = 0;
      HashVal = HashVal << 3 + Key[i];
  return HashVal
3
HashVal 8 .
8
ABC 'A‘ *82 + 'B‘ * 8 + 'C' .
KIM 10 ‘K’ * 102 + ‘I‘ * 10+ 'M' . 
http://cg.myongji.ac.kr
“HWANG" = 8 * 104 + 23*103 + 1*102+ 14*10 + 7
10

((((8 *10 + 23)*10 + 1)*10 + 14)*10) + 7
4. .


.
95 % 7 = ((7 + 2)*10 + 5) % 7 = (2 * 10 + 5) % 7
7 10 7 .
(: “HWANG“)
8 7 1 . 23 123 . 7 4 . 14 414 . 7 1 . 7 17 . 7 3 7
http://cg.myongji.ac.kr
(Collision Resolution) .


, ,
(Closed Addressing)
,

T[h(KEY)] ,  T[h(KEY) + 1],  T[h(KEY) + 2], ... .

h(key) = h % 31
[ 12-8]
4
, 127 , 4 “ ” . 5 .

(Occupied), (Deleted), (Empty)

.
[ 12-8]
=
34 34 % 31 = 3 , 127 127 % 31 = 3
[ 12-9] 1

97, 170 : 3, 4, 5, 6, 7
,
.

[ 12-9] 1
(, Load Factor) λ(Lambda)
M, N λ = N / M
, .

(Knuth, 1962)
(1 + 1/(1-λ)2)/2, (1 + 1/(1-λ))/2
1
M
M
M ≈ 2N (Constant Time)
http://cg.myongji.ac.kr
(Quadratic Probing)

T[h(KEY)] , T[h(KEY) + 1],  T[h(KEY) + 2], T[h(KEY) + 3], ... .
  T[h(KEY) + 1] % M
65, 34, 127
h(key) = h % 31
65 3 . 34 3 . 1 1 4
127 3 . 4, 7, 2
[ 12-10]


5 6 . 2, 3, 4 .
. 158 3, 4, 7, 12, 0 .
2 (Secondary Cluster) .
[ 12-11] 2

X Y X, Y
X, Y 1
X 2
2
1
4 4, 5, 8, 13
[ 12-11] 2


h1, h2
h1
h2 (Step Size)
[ 12-12]
http://cg.myongji.ac.kr
14
14 % 13 = 1 . (1 + (14 % 11)) = 4 1, 5, 9, 0 . 0
27
27 % 13 = 1. (1 + (27 % 11)) = 6. 1, 7, 0, 6 6
18
18 % 13 = 5. (1 + (18%11)) = 8. 5, 0, 0 .
h2
h2 0 . 0
h1 . .
2 .
http://cg.myongji.ac.kr
 
(Array of Array) 2



[ 12-13]
(Scatter Table)

(Dynamic Structure)
λ (1 + λ/2)
1
, ,



http://cg.myongji.ac.kr
.


(Random) .

(Universal, )
M , 1/M
http://cg.myongji.ac.kr
M .

2





.
,


O(lgN)
,
:
http://cg.myongji.ac.kr
O(lgN)
, . O(N) .
N/2 O(N).
O(1).
.
O(lgN) .
O(lgN) .
O(1)
http://cg.myongji.ac.kr
.
.
.

http://cg.myongji.ac.kr