??? ?? - PowerPoint PPT Presentation

About This Presentation
Title:

??? ??

Description:

Title: PowerPoint Last modified by: histone Document presentation format: Other titles: Times New Roman Palatino ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 48
Provided by: tis80
Category:

less

Transcript and Presenter's Notes

Title: ??? ??


1
9?. ?? ????
  • ?? ????
  • ?? ??, ??? ?? ? ??? ????
  • ??? ?? 
  • ? ? ??? ??
  • ????
  • ?? ????? ????? ????.
  • ?? ???? ?? ????? ?? ????.
  • ?? ???? ?? ???? ??? ????.
  • ?? ????? ?? ??? ???? ?? ??? ????.

2
??? ??
  • ??
  • ??? ?? ???
  • ??? ?? ?? ?(Sort Key) ??
  • ????, ????
  • ???? ? ??? ???? ?
  • ???? ? ??? ???? ?

3
??? ??
  • ????, ????
  • ????
  • ????? ???? ?? ???? ?? ? ?? ?
  • ????
  • ????? ???? ?? ???? ?? ? ?? ?
  • ?? ???? ?? ??? ??? ???? ??? ??

4
??? ??
  • ?? ??(Stable Sorting)? ??? ??(Unstable Sorting)
  • 1? ? ??
  • 2? ? ??
  • 1? ?? ?????? ???
  • 2? ? ????? ???.

?? ?? ?? ???
??? 1 C ??
??? 1 B ??
??? 1 A ??
??? 3 B ??
??? 3 C ??
??? 3 A ??
?? 4 A ??
?? ?? ?? ???
??? 3 A ??
?? 4 A ??
??? 1 A ??
??? 3 B ??
??? 1 B ??
??? 1 C ??
??? 3 C ??
?? ?? ?? ???
??? 1 A ??
??? 3 A ??
?? 4 A ??
??? 1 B ??
??? 3 B ??
??? 1 C ??
??? 3 C ??
5
??? ??
  • ?? ??(Direct Sorting)? ?? ??(Indirect Sorting)
  • ??
  • ????
  • ????

??? 0 0 1 1 2 2
??? ?? 90 ?? 50 ?? 70
??? 0 0 1 1 2 2
??? ?? 50 ?? 70 ?? 90
  0 1 2
??? 0 1 2
  0 1 2
??? 1 2 0
6
????
  • ?? ? ?? ???? ?? ??? ?? ???

22
37
15
19
12
22
12
15
19
37
19
12
15
22
37
15
12
19
22
37
12
15
19
22
37
7
????? ??
  • ?? 9-1 ?? ??
  •    void Selection(int A , int N)            A?
    ????, N? ???? ??? ?
  •   for (int Last N-1 Last gt 1 --Last)  ???
    ???? ???? ?????
  •          int Largest 0                       
    ?? ?? ?? ?? ??? ??
  •         for (int Current1 CurrentltLast
    Current) ???? ?????
  •              if (ACurrent gt ALargest) ?? ??
    ? ??
  •                   Largest Current              
    ?? ???? ?? ? ???? ????
  •          
  •         int Temp ALast                   
    ??? ?? ??? ???? ?? ??
  •           ALast ALargest                 
    ?? ? ???? ????? ??
  •           ALargest Temp                   
    ??? ?? ?? ? ??? ??? ??
  •      
  •   
  • if ? (N-1) (N-2) ... 1 (N-1)N/2 ? ??,
    ??? ???? ??
  • ?? ??? 4(N-1)
  • ?? 2(N-1)N/2 4(N-1) N2 3N - 4 O(N2)
  • ??? ?? ?? ?? ??? ??? ??? ???. O(N2/2) O(N2)

8
?? ????
  • ? ?? ??? ???? ???? ??? ???? ???
  • MinMax Sorting
  • O(N2/2) O(N2)
  • ??? ?? ??? ??
  • ??? ??? ??

  13 40 15 12 35 14 19 17
1?? ?? 12 17 15 13 35 14 19 40
2?? ??   13 15 17 19 14 35  
3?? ??     14 17 15 19    
4?? ??       15 17      
9
????
  • ????

10
????
  • ?? ? ???? ? ?? ??? ??? ??? ?? ??
  • ? ?? ???? ?? ?? ?? ???? ?? ?? ? ???? ?? ??

11
????
  • ?? ?
  • ??? N??? ?? ??? ?? ?? ?? N. ?? ???? ???? ??? ????
    ???? (???? ? ??? ??) ?? ??? ??.
  • ?? 9-2 ?? ??
  • void Bubble(int A , int N)   A? ????, N? ????
    ??? ?
  •     bool Sorted FALSE    ???? ?? ?? ????
    ????? ?? ??
  •      for (int Pass 1 (Pass lt N) (!Sorted)
    Pass)
  •          Sorted TRUE        ???? ?? ???
    ??? 
  •           for (int Current0 CurrentltN-Pass
    Current)
  •               if ACurrent gt ACurrent1   ??
    ?? ?? ??? ??
  •                    int Temp ACurrent    
    ??   
  •                     ACurrent ACurrent1
  •                     ACurrent1 Temp
  •                     Sorted FALSE      ???
    ????? ???? ?? ???
  •               
  • ?? ?? ??? ??? (N-1) (N-2) ... 1 (N-1)N/2
    ? ??. ?? ??? ???? (N-1)N/2 ?. ??? ??? 4 (N-1)N/2
    ?.
  • ???? (N-1)N/2 2(N-1)N O(N2)

12
????, ????
  • ??
  • ???? ?? ? ?? ?? ????? ????? ??? ??
  • ????? ?? ? ?? ?? ??? ?? ??? ???.
  • ?? ??? ?? ? ?? ? ?? ?? ??? ??
  • ???(??, ??)? ??? ??
  • ? ???? ??? ?? ??? ?? ???? ??
  • ?? ??? ???
  • ?? ??? ??? ??
  • 1???? ??. (???? ?? ??). O(N)? ??
  • ?? ??? ??? O(N2)? ??.
  • ?? ? ???? ??? ???? ?? ??? ??(Self Swap)

13
????
  • ?? ??? ??? ?? ?? ??.
  • 1 ???? ?? ? ??? ??? ??. ? ??? ??
  • 2 ?? ?? ???? ?? ?? ??. 37? 22?? ??? ??? ?.
  • 3 ?? 15? 37? ???? ????.
  • ? ?? ??? ???? ????? ???? ??
  • ?? ?? ??? ???? ? ??? ???.

14
????? ??
  • ?? 9-3 ?? ??
  • void Insertion(int A , int N)
  • for (int Pick1 PickltN Pick)  ???? ??? ???
    ?????
  •      int Current Pick                   ???
    ??? ???? ?? ????
  • int Temp APick
  •       for ( (Current gt 0) (ACurrent-1gtTemp)
    --Current)
  •           ACurrent ACurrent-1 ??? ?? ?? ??
    ????? ??
  •       ACurrent Temp              ??? ??? ?
    ??? ?? (?? ??)
  •  
  • ??
  • ?? ?? ???? 1 2 ... (N-1) (N-1)N/2 ? ??
  • for ? ??? ?? 2?, ?? 1?, for ? ??? ??? 1?
  • ? 4(N-1)N/2 2(N-1)N O(N2)
  • ?? ??? ???? ?? ?? ??? ??? ??
  • ?? ??? ?? ?? 2000?, ???? 10?. ???? ??? ???? ???
    ?? ?? ????. 2, 000?? ?? ???? ???? O(N)
  • ????? ??? ?? ??? ? ??? ??? ??? ??. ? ??? 10??
    ????? 10N? ??. ??? ???? ??? O(N) O(10N) O(N)

15
??, ??, ??
  • ??? ??? ?? O(N2)??? ??
  • ?? ??? ?? ??? ????
  • ????? ???? ????? ??(Shift)?? ??? ??? ??? ??
  • ?? ??? ??? ??
  • ??(Swap)? ?? ??? ?? ??? ??? ??

  ?? ?? ?? ?? ?? ??
?? O(N2) O(N2) O(N2)
???? No Yes Yes
16
? ??
  • ? ??

17
? ??
  • ?? ??? ??. ? ?? ???? ?? ?? ??? ?? ? ??
  • 4-??? ?
  • ??? h-??
  • ?????? 1-??. ??? O(N3/2). ?? ??? O(N2)??? ????
    O(NlogN)??? ?? ??

18
??
  • ??

19
??
  • ??? ??? ??

20
????
  • ?? 9-4 ?? ??
  • void Merge(dataType A , int F, int Mid, int
    L)     F, Mid, L? ?? ??? ?? ???
  • dataType TempMAX                          dat
    aType? ?? ???? ??
  •    int First1 F  int Last1
    Mid               F?? Mid??? ? ??
  •    int First2 Mid 1  int Last2
    L         (Mid1)?? L??? ?? ??
  •    int Index First1
  •    for ( (First1 lt Last1) (First2 lt Last2)
    Index) ?? ???? ??? ? ?? ??
  •       if (AFirst1 lt AFirst2)          ? ???
    ???? ???
  •            TempIndex AFirst1         ??
    ?? ??? ??
  •              First1                            
    ???? ??
  •        
  •        else                                      
    ?? ??? ???? ??? ???
  •           TempIndex AFirst2          ??
    ?? ??? ??
  •            First2                              
    ???? ??
  •                                 
  •  
  • for ( First1 lt Last1 First1, Index)    ?
    ??? ?? ???? ???
  •          TempIndex AFirst1                 
    ???? ?? ?? ??? ??
  • for ( First2 lt Last2 First2, Index)    
    ?? ??? ?? ???? ???

21
???? ????
  • ?? 9-5 ?? ??? ????
  • void MergeSort(int A , int First, int Last)
  • if (First lt Last)
  •        int Middle (First Last) / 2
  •         MergeSort(A, First, Middle)
  •         MergeSort(A, Middle1, Last)
  •         Merge(A, First, Middle, Last)
  •      
  •   
  • ????
  • ? ??? ?? ????, ??? ????. ??? ??
  • ??? ?????? ?? ?? ????? ??? ?? ???? Merge(A,
    First, Middle, Last) ?, ??? ?? ??

22
???? ???? ???
  • ???? ???? ???

23
????? ??
  • ??
  • O(NlgN)
  • ??? ?? ?? lgN
  • ? ???? ??? O(N)

24
????? ????
  • ??
  • O(N2) ? O(NlgN)
  • ?? ????? ?? ????? ??.
  • ????
  • ????

N103 N106 N109
PC ??? 2.8 ?? 317?
?? ? ??? 1? 1.7 ?
N103 N106 N109
PC ??? 1? 18?
?? ? ??? ??? ???
25
??
  • ??

26
????
  • ????? ????
  • ????? ??? ??
  • ?? ????? ??? ????? ??

MergeSort MergeSort (Left)   MergeSort (Right)   Merge QuickSort Partition   QuickSort(Left)   QuickSort(Right)
27
????
  • ?? 9-6 ??? ??
  • int partition(int A , int first, int last)
  •   int low, high, pivotindex, p
  •    p Alast                            ???
    ??? ????
  •    low first                           ? ????
    ????
  •    high last-1                          ??
    ???? ??? ?? ???
  •    while (low lt high)                     ??? ???
    ?? ???
  •      while (p gt Alow) low    ???? ??? ?? ?
    ??
  •       while (p lt Ahigh) high--  ???? ??? ?? ?
    ??
  •       if (low lt high)                      ???
    ??? ???
  •           Swap(A, low, high)             ?? ?? ?
    ?? ??
  •   
  •    Swap(Alow, Alast)               ? ???
    ???? ?? ???? ??
  •    return (low)                          ?? ????
    ??

28
???? ????
  • ?? 9-7 ?? ??? ????
  •    void QuickSort(int A , int First, int Last)
  •    if (First lt Last)
  •        int PivotIndex Partition(A, First,
    Last)
  •         QuickSort(A, First, PivotIndex-1)
  •         QuickSort(A, PivotIndex1, Last)
  •     
  •   

29
????
  • ??
  • ??? ?? ?? ??
  • ??? ?? ??? ?? ?? ??? ???? lgN
  • ??(Balancing)? ?? ? ??? O(NlgN0
  • ??? ???? ??? ??
  • ??? ?? ???? ?? ???
  • ??? ?? ?? N

30
????? ??
  • ??? ??
  • ? ?? ??? ??? ?? ???? ???
  • ??? ?? (?? ? ??? ???)
  • ?? ? ?, ??? ? ?, ??, ???, ?? ?
  • ?? ??? ?? ??
  • ?? ??? ??? ?? ??? ???.
  • ??? ??
  • ????
  • ???? ?? ?? ??, ??, ? ? ???? ????
  • ??? ???? ??
  • ??? 3?? ??? ???? ???? ??
  • 3? ???? 3?? ???? ?? ?, ? ?? ??? ?? ????
  • ???? ????
  • ?? ?? ??? 10? ??
  • ?? ????? ?? ??
  • ????? ?? ??? ??? ??,??? ??? ?? ??

31
????, ????
  • ????
  • ????? ? ???? ??? ??
  • ????? ??? ???? O(NlgN)? ??
  • ????? ??? ?? O(N2)
  • ????? ??????? ???? ??? ??(In-Place Computation)
  • ????? ??????? ?? ?? ???? ??? ??
  • ?????? ????? ??

32
???? ??
  • ????
  • ????
  • ??, ??, ??

  N103 N106 N109
PC ??? 1? 18?
?? ? ??? ??? ???
N103 N106 N109
PC ??? 0.3? 6?
?? ? ??? ??? ???
  ?? ?? ?? ?? ?? ??
??? ?? N2 N2 NlgN
??? ?? N NlgN NlgN
??? ?? N2 NlgN NlgN
?? ??? ??? N N2 NlgN
??? ??? ??? N2 N2 NlgN
?? N N 2N
???? Yes No YES
33
????
  • ????? ????
  • ?? ?? D A T A S T R U C T U R E A N D A L G O R
    I T H M
  • ?? ??? ??? ?? ??? ?? ?? ?? ????? ??
  • 1??
  • ?? 1 ADT RTU GOR
  • ?? 2 AST AEN HIT
  • ?? 3 CRU ADL M
  • 2?? (3?? ??)
  • ?? 4 AACDRSTTU
  • ?? 5 AADELNRTU
  • ?? 6 GHIMORT
  • 3?? (3?? ??)
  • ?? 1 AAAACDDEGHILMNORRSTTTTUU

34
????
  • 1??
  • ?? 1 ADT RTU GOR
  • ?? 2 AST AEN HIT
  • ?? 3 CRU ADL M
  • 2?? (2?? ??)
  • ?? 4 AADSTT AADELN M
  • ?? 5 CRRTUU GHIORT
  • 3?? (2?? ??)
  • ?? 1 AACDRRSTTTUU M
  • ?? 2 AADEGHILNORT
  • 4??(2?? ??)
  • ?? 3 AAAACDDEGHILNORRSTTTTUU
  • ?? 4 M
  • 5??(2?? ??)
  • ?? 1 AAAACDDEGHILMNORRSTTTTUU

35
????
  • ??
  • ?? ??? ??? ????? ?? ??? ??? ????
  • ??
  • CPU ???? ltlt ??? ??
  • ????? ??? ?????? ???
  • ? ??? ?? ?? ??? ?????? ??
  • 1 ?? ???? ??? ??? ??? N/M ?
  • p? ??? ??
  • ?? ??? ??? ??? 1/p ? ???
  • ??? ??? ??? ?? logp(N/M)

36
??? ????
  • ????? ????
  • 3?? ???? ?? ??? ??? 3! 6
  • ???? ??? ???? ????? ?? ??? ?? N! ? ??
  • ??? ??? ??? log2(N!) ?? ?? ?? ??? ??? log2(N!).
  • ???(Stirling)? ?? log2(N!) log2(N/e)N Nlog2N
    - Nlog2e.
  • ??? ???? ??? ?? ????? Nlog2N

37
????
  • ????

38
????
  • ??
  • ? ??? ?? ???? ?? ?? ??? ??
  • ??
  • O(N). ? ??? ?? ??? ???? O(NlgN)? ??? ? ??
  • ??
  • ?? ??? ????? ? ?? ??? ? ??
  • ??? ??? ?? ??? ??? ??. ??? ???? ???
  • ?? ??? ?? ? ??

39
? ??
  • ????(Distribution Counting) ?? ? ??(Count
    Sorting)
  • ?? ? ??
  • ? ??? Count ??? ??. Count1 4, Count2 2,
    Count3 1
  • ??? ??? Count1 4, Count2 4 2 6,
    Count3 6 1 7
  • ????? ???? ?? ? ??? ??? ??
  • ?? ??? ??? ??? ?. ?? ???? ??? ?? ??? ??
  • ??
  • O(N)?? ????

40
????
  • ?? ?? ????. ??? ???, ??? ??.

41
????
  • ????
  • Radix ??
  • ??? ?? ??? ??. ??? ??? ??
  • ??? ??? ???? ?? ???? ??? ?? ??? ??
  • ??
  • 8?? ASCII ???? 256?? ????
  • 16?? ????(Unicode)?? 65,536 ??? ????
  • ??? ???? ???? ?? ?? ???? ?? ??? ?? ? ??.

42
LSD ????
  •    LSD
  • ??? ???(Least Significant Digit )?? ????
  • ??? ???? ??? ??? ??. ?? ??? ??? ??? ??? ??? ???
    ??? ???
  • ?? ??? ??? ? ??? ??
  • ??? ?? W? ?, ??? O(WN).

0 a d d
1 c a b
2 f e e
3 b a d
4 d a d
5 b e e
6 b e d
7 a c e
      ?
0 c a b
1 a d d
2 b a d
3 d a d
4 b e d
5 f e e
6 b e e
7 a c e
    ?  
0 c a b
1 b a d
2 d a d
3 a c e
4 a d d
5 b e d
6 f e e
7 b e e
  ?    
0 a c e
1 a d d
2 b a d
3 b e d
4 b e e
5 c a b
6 d a d
7 f e e
       
? 9-19) A
? 9-20) B
? 9-21) C
? 9-22) D
43
LSD ????
  • ??
  • ?? ??? ??? ????? ???? ????? ??? ??? ??
  • ?? ?? ?? ???? ???.
  • cold ? old ?? ?? ? ??? ??? ????? ????? ??? ? ????
    cold? c? ????? ?? ?? old?? ???? ?? ?? ??? ???? ?
    ??(Null Character)? ??.
  • ASCII ?? ?? ??? c? ??? 99, ? ??? ??? 0??? old,
    cold ?? ????? ??. ?? ??? ??
  • ??? ??? ??? ??? ?? ??? ??. ?? ?? Kim Pak Cho Rho
    ???? ??? ? ??? ??? ??? ??? ???.
  • ??
  • cold, old, at? ????? cold, old0, at00 ??? ???? 0?
    ??
  • 0? ??? ? ??? 47?? ????? ? ?? ??
  • ??? ???? ??? ???? ??? ??? 0? ??? ??
  • 1611, 315, 17? ????? 1611, 0315, 0017? ??
  • ??? ???? ????? ?? ?? ??? ???? ??, ?? ?? ??? ???.

44
MSD ????
  • MSD
  • ?? (MSD Most Significant Digit) ?? ????? ??
  • ? ??(Distribution Counting)? ??. O(WN) O(N)
  • ??? ?? ??? ???? ??? ?? ??? ??
  • ???? ??(Uniqueness) ??? ? ?? ?? ???? ??

0 a d d
1 c a b
2 f e e
3 b a d
4 d a d
5 b e e
6 b e d
7 a c e
  ?    
0 a d d
1 a c e
2 b a d
3 b e e
4 b e d
5 c a b
6 d a d
7 f e e
    ?  
0 a c e
1 a d d
2 b a d
3 b e e
4 b e d
5 c a b
6 d a d
7 f e e
      ?
0 a c e
1 a d d
2 b a d
3 b e d
4 b e e
5 c a b
6 d a d
7 f e e
       
? 9-23) D
? 9-24) E
? 9-25) E
? 9-26) G
45
???? ??
  • ???? ??
  • ?? ??? ??? ? ?? ?? ???? ??
  • ?? ??? ?? ??? ??
  • 3-way ???
  • ?? b? ???? ?? ?(add, ace ??, dad, fee, cab ??)?
    ?? ? ??? ???? ????? ???? ?.
  • ?? b? ???? ?(bed, bad, bee)? ??? ??? ???? ??? ??

0 a d d
1 c a b
2 f e e
3 b a d
4 d a d
5 b e e
6 b e d
7 a c e
  ?    
0 a d d
1 a c e
2 b e d
3 b a d
4 b e e
5 d a d
6 f e e
7 c a b
    ?  
? 9-27) H
? 9-28) I
46
????? ??????
  • ???
  • ??? ?? 0? ??? 1? ???? ??
  • ???? ????? ???? ??? ??
  • ????? ????
  • ?? ?? ??(Uniqueness)??? ? ?? ?????? ????

47
?? ??? ???? ??
  • ??? ???
  • ???? ??? ??? N?? ?? ?? ??
  • ??? N ??? ????? log2N ?? ?? ?? ?? ?? ??? ?.
  • ???? ??? ??? O(Nlog2N)
  • ??? ??
  • ????? ? ?, ?? ???? 0? ??? 1? ??? 1/2?? ??
  • ?? ??? ???? ??? ???? ?? 0 ??, ??? ?? 1 ??
  • ??? ?????? ??? ?? ?? ???? ????? ???? ???? ??? ??
    ?? ?? log2N? ??
  • ??? ??? ??? ???? ?? ?? ???? O(Nlog2N)? ??
  • ??
  • ???? ?? ??? ?? ??? ???? ??? ?? ??? ? ??
  • ???? ???? O(Nlog2N)??? ? ??? ?? ??? ????
  • ?? ???? O(Nlog2N)?? ? ??? ??? ??? ????
Write a Comment
User Comments (0)
About PowerShow.com