Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

11
Algoritmer og Datastrukturer 1 ...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal Aarhus Universitet

description

Algoritmer og Datastrukturer 1 ...mere Sortering [CLRS, kapitel 8]. Gerth Stølting Brodal. Aarhus Universitet. Sorterings-algoritmer. Sortering ved sammmenligninger: Nedre grænse. Interne knude i:j sammenligner x i og x j Blade beskriver output permutation. - PowerPoint PPT Presentation

Transcript of Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Page 1: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Algoritmer og Datastrukturer 1

...mere Sortering [CLRS, kapitel 8]

Gerth Stølting BrodalAarhus Universitet

Page 2: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

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)

Page 3: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Sortering ved sammmenligninger:Nedre grænse

Interne knude i:j sammenligner xi og xj

Blade beskriver output permutation

>>

><=

<=

<=

<=

>

><=

2:3

1:3

1:3

1:2

2:3

<3,2,1><2,3,1><1,3,2>

<2,1,3><1,2,3>

<3,1,2>

Page 4: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

n! forskellige output≥ n! forskellige bladetræ af højde h har≤ 2h blade

n! ≤ 2h

h ≥ log (n!) ≥ log ((n/2)n/2) = Ω(n·log n)

Worst-case Ω(n·log n) sammenligninger

Sortering ved sammmenligninger:Nedre grænse

>>

><=

<=

<=

<=

>

><=

2:3

1:3

1:3

1:2

2:3

<3,2,1><2,3,1><1,3,2>

<2,1,3><1,2,3>

<3,1,2>

Page 5: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Counting-Sort:Input: A, ouput: B, tal fra {0,1, ...,k}

Worst-case tid O(n+k)

Page 6: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Radix-Sort:Input: array A, tal med d cifre fra {0,1,...,k}

Worst-case tid O(d·(n+k))

7682342375843434234275405398

7540768223423423758434345398

3423343475402342768275845398

2342539834233434754075847682

2342342334345398754075847682

Page 7: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Radix-Sort:Input: array A, n tal med b bits

111011010011101011001010100111010101011010101011100110010101111011110111

001010100010101111011010101011100110011101011011110111111010101111011010

001010100111010101011010101111011010011100110010101111011101011011110111

010101111011101011001010100011100110111010101011110111111011010011010101

n = 8, k = 7 (3 bits = log n bits), d = 3 (3 x 3 bits)

Input n tal med b bits: Worst-case tid O(n·b/log n)

Page 8: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Radix-Sort: Eksperimenter

LaMarca, Ladner ’97

Page 9: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Radix-Sort: Eksperimenter

LaMarca, Ladner ’97

Page 10: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Radix-Sort: Eksperimenter

LaMarca, Ladner ’97

Page 11: Algoritmer og Datastrukturer 1 ..re Sortering [CLRS, kapitel 8]

Bucket-Sort:Input: A, reelle tal fra [0..1]

Forventet tid O(n) – for tilfældigt input