B-?? - PowerPoint PPT Presentation

1 / 70
About This Presentation
Title:

B-??

Description:

Title: PowerPoint Author: apple Last modified by: Created Date: 12/7/2000 8:00:30 AM Document presentation format: – PowerPoint PPT presentation

Number of Views:13
Avg rating:3.0/5.0
Slides: 71
Provided by: app146
Category:
Tags: radix | tree

less

Transcript and Presenter's Notes

Title: B-??


1
4? ?? ????
2
??
  • ?? ??
  • ?? ??
  • ?? ?? ??
  • ?? ??
  • 2-3-4 ??
  • ??-?? ??
  • ??
  • ???
  • ?? ???
  • ?? ??
  • ?? ??
  • ??? ?? ??
  • ?? ?? ???
  • ???? ??
  • ?? ??
  • B-??

3
??(Searching)
  • ???? ??? ??? ???? ???? ???? ????
  • ??
  • ???? ??? ??? ?? ?? ? ??
  • ?? ??, ?? ??, ?? ?? ??, ??
  • ???? ???? ??? ??? ??
  • ?? ?? ??

4
?? ??(sequential searching)
  • ??? ?? ?? ???? ?? ???? ??
  • ???? ?? ? ?? ????? ???? ??? ????? ??? ?? ?? ??
  • ??? ???? ??? ???? ??
  • ?? ??
  • ??? ??? ?? ??? ????? ?? ??? ?? ?? N 1 ?? ???
    ????, ???? ??? ???? ????? N/2 ?? ??? ??
  • ??? ?? ???? ??? ?? ??? ???? ??? ????? ?? ?? ??
    ????? N/2 ?? ??? ??

5
?? ?? ????
SequentialSearch(a, search_key, n)   i ? 1  
while (i n and ai.key search_key) do i
? i 1   if (i n1) then return -1  // key
?? ???? ??   else return i end
SequentialSearch()
6
?? ??? ?? ?? ??
  • ?? ???? ? ?
  • ???? ?? ?? ???? ??? ???, ? ?? ?? ???? 2???, ...
    ??? ??
  • ?? ?? ???? ????? ??? ? ?? ???
  • ?? ???? ?? ?
  • ??-??(self-organizing) ??
  • ???? ??? ??? ??? ?? ???? ?????, ?? ???? ???? ??
    ???
  • ?? ??? ??? ???? ?? ????? ??? ?? ?? ??? ??

7
?? ??(binary search)
  • ??-?? ??? ??
  • ?? ??
  • ?? ??? ???? ??? ????? ?? ?? ?? logN 1 ? ??? ???
    ?? ??
  • CN CN/2 1
  • ???? ???? ??? ??? ???? ??? ??? ????? ???? ?? ??

8
?? ?? ????
BinarySearch(a, search_key, n)   left ? 1
right ? n   while (right left) do     mid
? (left right) / 2     if (amid.key
search_key) then return mid     if (amid.key
gt search_key) then right ? mid -1     else left
? mid 1      return -1  // key ?? ???? ??
end BinarySearch()
9
?? ?? ??
  • ?? ?? ??
  • ?? ?? ??? ?? ?? ???? ?? ????? ??
  • ??? ? ?? ??? ?? ?? ???? ??? ????? ??
  • ?? ??
  • ??? ??? ?? ??
  • ?? ???? ???, ?? ????? ??
  • ?? ??? ???, ??
  • ?? ???? ???, ??? ????? ??
  • ??? ?? ???? ???? ???? ??? ??

10
?? ?? ??? ?
2
1
7
6
8
3
5
4
11
?? ?? ?? ????
searchBST(B, search_key)   p ? B   if (p
null) then return null   if (p.key
search_key) then return p   if (p.key lt
search_key) then     return searchBST(p.right,
search_key)   else return searchBST(p.left,
search_key) end searchBST()
12
?? ??
  • N?? ??? ?? ???? ?? ?? ??? ???? ???? ??? ?????
    logN ?? ?? ??
  • ??? ?? N ?? ?? ?? ?? ?? ??? ????? N ?? ?? ??
  • ?? ????? ???? ??? ??? ??
  • ?? ?? ?? ??? ??? A Z B Y C X ... ? ?? ??? ??

13
?? ??(Balanced Tree)
  • ?? ?? ????
  • ??? ?? ??? ?? ??? ?? ?? ???? ??? ??, ? ?? ?? ??
    ??? ??? ??
  • ?? ??
  • ? ??? ?? ?? ?? ??? ??? ?? ??? ?? ??? ???? ? ?? ??
  • ?? ?? ??? ???? ??? ?? ?? ???? ??? ??? ?? ? ??
  • ???? ??? ?? ??? ? ???, ?? ????? ??? ??? ???? ?

14
2-3-4 ??(2-3-4 Tree)
  • ?? ?? ??(1?? ?, 2?? ??)?? ???? ??? ??? ???? ??
    ??? ?? ????? ??
  • ??? ?? ??? ??? ?? ??? ?? ?? ? ??
  • 3-??(2?? ?, 3?? ??)? 4-??(3?? ?, 4?? ??)? ??
  • ??? ??? ?? ?? ?? ??? ??? ?? ??? ??? ?

15
?? ??(1)
  • ??? 4-??? ??
  • ? ?? 2-??? ??
  • ??? ??? ??? ??? ?? ????
  • ??? 2-??? 4-??? ??
  • ?? ?? ??? ??? 3-??? ??? ? ?? 2-??? ??
  • ??? 3-??? 4-??? ??
  • 4-??? ??? ? ?? 2-??? ??

16
?? ?? (2)
  • 4-??? 2-3-4 ??? ??? ??
  • ??? ??? ??? ??(Ti? ????)

17
?? ??(3)
  • 4-??? 2-??? ??? ??? ??
  • 4-??? 2-??? ?? ??? ??
  • 4-??? 2-??? ?? ?? ??? ??

18
?? ??(4)
  •  4-??? 3-??? ??? ??
  • 4-??? 3-??? ?? ??? ??
  • 4-??? 3-??? ?? ?? ??? ??

19
?? ??(5)
  • 4-??? 3-??? ??? ??? ??

20
2-3-4 ??? ?? ?? (1)
? ?? ( 2, 1, 8, 9, 7, 3, 6, 4, 5 )
21
2-3-4 ??? ?? ?? (2)
? ?? ( 2, 1, 8, 9, 7, 3, 6, 4, 5 )
22
?? ??
  • N-??? ???? 2-3-4 ??? ??? logN 1 ? ?? ??? ????
    ??
  • N-??? ???? 2-3-4 ??? ??? ??? ?? logN 1 ?? ???
    ????, ?????? ?? ??? ??? ???
  • 2-3-4 ???? 4-??? ??? ??
  • ????? ??? h? 2-3-4 ??? 2h1-1? 4h1-1 ??? ?? ??
  • N ?? ?? ???? 2-3-4 ??? ??? ?log4(N1)?-1?
    ?log2(N1)?-1 ??

23
??-?? ??(red-black tree)
  • 2-3-4 ??? ?? ?? ??? ???? ??
  • ??? ??? 1 ??? ? ???
  • ?? ??? ??? ????, 3-??? 4-??? ?? ??? ??? ?? ??? ??

24
??
  • ??? ?? ??? ?? ??
  • ???? ?? ????? ?? ??? 2?? ??? ?? ??? ???? ??
  • ???? ? ?? ????? ??? ?? ?? ??? ?? ?? ??
  • ??? ?? ??? ???? ??? ??? ???? ?? ? ? ??
  • ??? ?? ?? ? ?? ? ??? ?? ?? ?? ??? ?? ?? ???

25
4-??? ??
26
4-??? ??(?? ??)
27
?? ??
28
?? ??
29
?? ?? ??? ???? (1)
  • ? ( 2, 1, 8, 9, 7, 3, 6, 4, 5 )

2 ??                     1 ??       
             8 ??
9 ??                                        
7 ??
30
?? ?? ??? ???? (2)
  • ? ( 2, 1, 8, 9, 7, 3, 6, 4, 5 )

3 ??
6
??
?? ??

4 ??
31
?? ?? ??? ???? (3)
  • ? ( 2, 1, 8, 9, 7, 3, 6, 4, 5 )

?? ??

5 ??
?? ??
32
??(rotate)
rotate(int k, struct node y) struct node
high, low high (k lt y-gtkey) ? y-gtl
y-gtr if (k lt high-gtkey) / ??? / low
high-gtl high-gtl low-gtr low-gtr high
else / ??? / low high-gtr high-gtr
low-gtl low-gtl high if (k lt y-gtkey) y-gtl
low else y-gtr low
33
??(split)
split(int k) x-gttag red x-gtl-gttag black
x-gtr-gttag black if (p-gttag) g-gttag
red if (k lt g-gtkey ! k lt p-gtkey)
rotate(k, g) p x rotate(k, gg) x
p x-gttag black head-gtr-gttag
black
34
?? ??
  • r? ??(rank)?? ? ?, ?? ?(? ?? ?) N? N 2r-1
  • ??-?? ??? ?? h? h 2log(N1)???, ?? ?? ????
    ?(logN)
  • ??-?? ??? ?? ?? ???? ??? ??? ?? ?? ?? ??? ?? ????
    ??? ? ???? ??-?? ??? ?? ?? ???? ?(logN)

35
??(hashing)
  • ?? ?? ???? ?? ??? ?? ? ?? ?? ??? ? ?? ??
  • ??? ??
  • ?? ??(hash function)? ?? ?? ?? ?? ??? ??? ??
  • ?? ??? ??? ????? ???? ??? ??(collision-resolution)
    ?? ?

36
??
  • ??? ??? ??
  • ???? ??? ?? ?? ?? ??? ??? ???? ?? ????? ? ??
    ??? ???? ?? ??
  • ??? ??? ?? ?? ???? ???? ???? ???? ???? ?? ??
  • ??? ??? ? ?? ???? ???? ??? ?? ? ?? ??? ??
  • ??? ???? ??? ??? ???? ????? ????? ??? ???? ????
    ??

37
?? ??(1)
  • ?? ?? ??? U? ??, ?? ???? T0..m-1?? ? ?, ?? ??
    h? ??? ?? ??? ??? ??? ???? ???

h U ? 0, 1, , m-1
38
?? ??(2)
  • ????
  • ??? ?? ?? ?? ??
  • m? ?? ???? ???? ?
  • ?? m? 2? ????, ?? ?? 2r?? ???? h(k)? k? ?? r ???
    ??? ?
  • ?? ???? ??? ???? 10? ????? ?? m? ??
  • ???, m? 2? ????? ??? ??? ?? ??? ???? ?? ??

h(k) k mod m
39
?? ??(3)
  • ???
  • ??? ?? m? ??? ?? ?? ??
  • m? ?? ???? ??
  • ??? ???? ?? ?? ?? m? 2? ????, ? m2p? ??
  • ???? ??
  • ?? ???? ?? ?? ??? ??? ?? ???? ??? ??
  • ???? ?? ??? ? ?????? ??? ?? ??? ????? ?? ?? ???
    ??? ??? ????? ???? ???? ???

40
???(chaining)
  • ?? ??? ???? ?? ??? ?? ??? ??? ???
  • ??
  • ??? ??? ??
  • ??
  • ??? ??? ?? ????? ??
  • ???? ??? ???? ????? ?

41
?? ??? ?
h(k) k mod 11
42
?? ??
  • ?(?? 4.14 )
  • ????? ?? ??? ?? ???? ?? ??
  • (153315133 21)/11 2.55 ?
  • ???? ??? ?? ???? ?? ??
  • (7?16?22?32?4)/17 1.94 ?
  • ???? m?? ?? ????? ?????, ?? ??? ?? ????? ?? ????
    ?? m? ??? ?? ???? ?? ??? ??

43
?? ???(linear probing)
  • ?? ??
  • ?? ???(open addressing) ?? m ?? ?? ??? ??? ?? ?
  • 1? ?????? ??
  • ??? ??? ????? ???? ??? ??? ??? ?? ? ??? ??
  • ??? ??? ?? ?? ??? ????

h(k) k mod m
44
?? ???? ????(1)
h(k) k mod 19
45
?? ???? ?? ??(2)
46
????
  • ?? ???? 2/3 ?? ? ?? ??, ?? ???? ????? 5??? ?? ???
    ??
  • ???? ??? ???? 90 ?? ? ??? 5? ??? ??? ??
  • ????? ?? ??? ?? ???? ??? ?? ??? ?? ?

47
?? ??(double hashing)
  • ????? ??? ??
  • ?? ???? ? ?? ??? ???? ??? ?? ?? ??? ?? ??
  • ? ?? ?? ???? ??? ? ?? ?? ??? ????? ?????? ?? ? ??

48
?? ??? ?
49
?? ??? ????
50
?? ??
  • ?? ??? ????? ?? ???? ?? ?? ??? ??
  • ?? ??? ?? ??? ?? ?? ??? ??? ???? ??? ?? ??? ???
  • ???? 80 ??? ??? ?? ?? ????? ?? ??? ?? ?? ??? 5?
    ????, 99 ??? ?? ?? ???? ??? 5? ??? ? ? ??

51
??? ?? ??
  • ?? ???? ??? ?? ???? ??
  • ???
  • ?? ?? ?? ??
  • ?? ??? ??
  • ?? (?? ??? ?? ?? ?? ??? ?)
  • ??? ?? ??? ?? (??? ?? ??? ?? ?? ???? ?? ?? ?? ???
    ???? ??? ??)
  • ??? ? ?? ??? ??? ?? (? ?? ??)

52
?? ??(radix searching)
  • ?? ?? ??? ??(0? 1)? ??? ??? ?? ?? ??? ??? ??? ??
  • ?? ?? ?? ??? 0?? ?? ??? ????, 1?? ??? ??? ??
  • ?? ?? ? ?? ??? ??? ??? ?? ?? ???? ?? ??? ?? ??? ?
  • ?? ?? ????? ?? ?? ?? ??? ???? ?? ??? ??? ??? ???
    ?? ?? ???? ???? ?

53
126??? ???
1 00001 2 00010 3 00011 4 00100 5 00101 6
00110 7 00111 8 01000 9 01001 10 01010 11
01011 12 01100 13 01101 14 01110 15 01111 16
10000 17 10001 18 10010 19 10011 20 10100 21
10101 22 10110 23 10111 24 11000        25
11001 26 11010
54
??? ?? ??(digital search tree)
  • ?? ?? ?? ??? 0?? ??, 1?? ????? ???? ?? ???? ??? ?
    ?? ??? ??? ??
  • ??? ??? ??? ?? ?? ???? ??? ?? ?? ? ?? ? ??? ??
    ??? ??

55
??? ?? ??? ?(1)
  • ? ( 1, 19, 5, 18, 3, 8, 26, 9 )

1 (00001)
19 (10011)
5 (00101)
18 (10010)
3 (00011)
26 (11010)
9 (01001)
56
?? ??
  • ??
  • ???? ?? ??? ???
  • ??
  • ?? ?? ??? ?? ??? ?? ? ??? ??? ?? ??? ?? ?? ?? ??
    ???? ???, ?? ?? ? ???? ? ??? ?? ??? ??

57
?? ?? ???(radix search trie)
  • ???(trie) reTRIEval ? ????? ?? Fredkin? ???
  • ??? ?? ??? ?? ??? ??? ?? ??? ??? ??? ??? ????
    ???? ?? ?? ???? ??
  • ?? ? ??? ?? ????? ?????? ??? 1?? ???
  • ?? ??? ?? ???? ???? ?? ??? ??? ???, ?? ??? ?? ???
    ??? ??????? ??? ???????? ???

58
?? ?? ???? ?
  • ? ( 1, 19, 5, 18, 3, 26, 9 )

1 (00001)
19 (10011)
18 (10010)
5 (00101)
3 (00011)
26 (11010)
9 (01001)
59
?? ??
  • ?? ? ? ?? ? ???? ????? ?? ??? ??
  • ?? ???? ?? ???? ???? ?? ??? ?? ???
  • ?? ??? ?? ??? ??? ??????? ???????? ???

60
????(Patricia)
  • Practical Algorithm To Retrieve Information
    Coded In Alphanumeric? ??
  • ??? ? ?? ??? ??? ???? ???? ??? ?? ?? ??? ?? ???
    ??? ??? ?? ??? ??
  • ?? ??(upward link)? ??? ?? ??? ???? ??? ?? ??
    ???? ??? ??? 1?? ?? ??
  • ???? ?? ???? ?? ??? ?? ??? ??? ?? ??? ?? ??? ??
    ?? ??? ???? ?? ?? ???? ??? ??? ??? ??

61
????? ?(1)
  • ? ( 1, 19, 5, 18, 3, 26, 9 )

19 (10011)
5 (00101)
1 (00001)
18 (10010)
3 (00011)
62
????? ?(2)
  • ? ( 1, 19, 5, 18, 3, 26, 9 )

26 (11010)
9 (01001)
63
?? ??
  • ?? ??? ?? ???? ?? ??? ??
  • ?? ??? ?? ?? ? ??? ???? ?? ?? ? ? ?? ???? ??
  • ??? ?? ??? ?? ?? ???? ??? ??? ??

64
?? ??(external searching)
  • ?? ? ??? ?? ???? ??? ???? ?? ?? ???? ?? ???
  • ?? ??? ? ??? ??? ?? ??
  • ??? ?? ?? ?? ??? ?? ?? ?? ??? ?? ??? ??
  • ?? ?? ??? ?? ?? ?? ?? ??? ??? ???
  • 10?? ??? ???? ????? ?? 23?? ??? ???? ???
  • ???? ???? ???? ???, ???? ?? ???? ??? ??

65
???? ?? ??
  • ?? ??? ??? ?? ?? ?? ??? ?? ?? ???? ??? ???? ????
    ??
  • ??? ???? ??? ????? ?? ?? ??? ??? ?? ??
  • ??? ??? ??? ??? ??
  • ??? ??? ???? ??? ? ?? ?? ??
  • ???? ?? ???? ??? ?? 2? ??? ??? ??? ??? ???, ???
    ?? ??? ????? ?? ??? ??

66
??? ?? ?
  • ?
  • 5,24,20,5,18,14,1,12,19,5,1,18,3,8,9,14,7,5,24,1,1
    3,16,12,5
  • ?? ??
  • ???? ?? ??

67
?? ??
  • ??? ?? 2? ??? ??? ?? ??
  • ??? ?? ??? ????? ?? ??

68
B-??
  • R. Bayer? E. McCreight? ??? ?? ??? ?? ??? ??? ???
  • ?? ???? ? ??? M-1???? ? ?? ??? M?? ???? ??
  • ??? M? B-??? ? ??? M/2 ? ??? ? ?? ???? ???
  • ??? ?? ??? ?? ? ??? ??? ???
  • ??? M-??? ??? k-??? ? ?? (M/2)-??? ??? (k1)-???
    ???
  • ?? ??? ??? ??? ??

69
B-?? ??? ?
  • ?
  • 5,24,20,5,18,14,1,12,19,5,1,18,3,8,9,14,7,5,24,1,1
    3,16,12,5

70
?? ??
  • N?? ??? ???? ??? ??? M? B-???? ??? ? ??? ?????
    ??? ? ??? ??? ?? ??? logM/2N ?? ??
  • ? ?? N?? ??? ???? ??? ?? ??? M/2?? ? ?? ?? B-???
    ???? ?? ??? ???
Write a Comment
User Comments (0)
About PowerShow.com