Algoritmer og Datastrukturer 1 Quicksort [ CLRS, kapitel 7 ]
-
Upload
phyllis-blackwell -
Category
Documents
-
view
40 -
download
1
description
Transcript of Algoritmer og Datastrukturer 1 Quicksort [ CLRS, kapitel 7 ]
Algoritmer og Datastrukturer 1
Quicksort [CLRS, kapitel 7]
Gerth Stølting Brodal
Quicksort:Sorter A[p..r]
Hoare, 1961Worst-case tid O(n2)
Ap r
x
Ap rq
x > x≤ x
Ar
jx>x≤x
i
?p
Quicksort på 23 elementer1 2 11 12 13 14 15 16 17 18 20 21 22 2319103 4 5 6 7 8 9
5 4 11 15 3 17 14 16 8 6 7 13 9 12
5 4 3 8 6 7 9
2310 5 4 20 11 22 15 3 17 14 16 19 8 6 21 7 13 9 12 2
2318 10 5 4 20 11 22 15 3 17 14 16 19 8 6 21 7 13 9 12 2 1
181
10 18 20 222321 192
22 2320 21 19
19
2 105 4 11 15 3 17 14 16 8 6 7 13 9 12
2321 20
20 21
21
10 15 11 17 13 14 12 16
5 4 3 8 6 7 9
5 4 3 6 87
86345
3 4 5
4
4
5
16 171214131115
1711 12
11
15
1513
1413
14
1413
13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Quicksort : Rekursionen for 151 2 11 12 13 14 15 16 17 18 20 21 22 2319103 4 5 6 7 8 9
5 4 11 15 3 17 14 16 8 6 7 13 9 12
5 4 3 8 6 7 9
2310 5 4 20 11 22 15 3 17 14 16 19 8 6 21 7 13 9 12 2
2318 10 5 4 20 11 22 15 3 17 14 16 19 8 6 21 7 13 9 12 2 1
181
10 18 20 222321 192
22 2320 21 19
19
2 105 4 11 15 3 17 14 16 8 6 7 13 9 12
2321 20
20 21
21
10 15 11 17 13 14 12 16
5 4 3 8 6 7 9
5 4 3 6 87
86345
3 4 5
4
4
5
16 171214131115
1711 12
11
15
1513
1413
14
1413
13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Quicksort : Dybde ved n ≈ 220
0
10000
20000
30000
40000
50000
60000
70000
80000
0 10 20 30 40 50
# el
emen
ter
Dybde
Randomized Quicksort
Forventet tid O(n·log n)
Randomized Quicksort : Analyse
• Et array er i lag j hvis længde n(3/4)j+1.. n(3/4)j • En opdeling er god hvis hver del ≤ ¾ elementer
(mindst +1 lag) – sker med sandsynlighed ≥ 0.5• xi forventes ≤ 2 gange i hvert lag• Forventede dybde af xi ≤ 2·log4/3 n
x i
x i
x i
x i
x i
x i
x i
x i
lag 0
lag 1
lag 2
lag 3
lag 4
Randomized Quicksort : Analyse
Forventede tid for randomized quicksort
= O(Σi=1..n forventede dybde af input xi )
= O(Σi=1..n log n)
= O(n·log n)
Sorterings-algoritmer
Algoritme Worst-Case Tid
Heap-SortO(n·log n)
Merge-Sort
Insertion-Sort O(n2)
QuickSort(Deterministic og randomiseret)
O(n2)
Algoritme Forventet tid
Randomiseret QuickSort O(n·log n)
Sortering:
Eksperimentelle resultater
Mergesort med skift til Insertion-sort
Skift til insertion-sort ved små problemstørrelser n = 300.000 elementer
Quicksort med skift til Insertion-sort
Skift til insertion-sort ved små problemstørrelser n = 300.000 elementer
Tiden for Sorterings Algoritmer
Tiden for Sorterings Algoritmer
Algoritmer og Datastrukturer 1
Randomized-select [CLRS, kapitel 9.1-9.2]
Gerth Stølting Brodal
Beregning af Minimum of Maximum
• At finde minimum af n elementer kræver
n-1 sammenligninger
• At finde minimum og maximum af
n elementer kræver 3/2·n-2 sammenligninger
<
<
<
<
<
<
minimum maximum
Randomized Select:Find det i’te mindste element i A[p..r]
Forventet tid O(n)
rxqp
k
> x≤ x
Randomized Select : Analyse
x i
x i
x i
x i
x i
x i
x i
x i
lag 0
lag 1
lag 2
lag 3
lag 4
Forventede tid for randomized select
= O(Σj forventede tid i lag j)
≤ O(Σj n·(3/4)j · # forventede arrays i lag j)
≤ O(Σj n·(3/4)j · 2)
= O(n)