Insertion-Sort M. Esponda Insertion-Sort M. Esponda - - PowerPoint PPT Presentation

insertion sort
SMART_READER_LITE
LIVE PREVIEW

Insertion-Sort M. Esponda Insertion-Sort M. Esponda - - PowerPoint PPT Presentation

Insertion-Sort M. Esponda Insertion-Sort M. Esponda Insertion-Sort M. Esponda Insertion-Sort <? M. Esponda Insertion-Sort M. Esponda Insertion-Sort M. Esponda Insertion-Sort M. Esponda Insertion-Sort M. Esponda Insertion-Sort


slide-1
SLIDE 1

Insertion-Sort

  • M. Esponda
slide-2
SLIDE 2

Insertion-Sort

  • M. Esponda
slide-3
SLIDE 3

Insertion-Sort

  • M. Esponda
slide-4
SLIDE 4

<?

Insertion-Sort

  • M. Esponda
slide-5
SLIDE 5

Insertion-Sort

  • M. Esponda
slide-6
SLIDE 6

Insertion-Sort

  • M. Esponda
slide-7
SLIDE 7

Insertion-Sort

  • M. Esponda
slide-8
SLIDE 8

Insertion-Sort

  • M. Esponda
slide-9
SLIDE 9

Insertion-Sort

<?

  • M. Esponda
slide-10
SLIDE 10

Insertion-Sort

<?

  • M. Esponda
slide-11
SLIDE 11

Insertion-Sort

<?

  • M. Esponda
slide-12
SLIDE 12

Insertion-Sort

  • M. Esponda
slide-13
SLIDE 13

Insertion-Sort

  • M. Esponda
slide-14
SLIDE 14

Insertion-Sort

<?

  • M. Esponda
slide-15
SLIDE 15

Insertion-Sort

<?

  • M. Esponda
slide-16
SLIDE 16

Insertion-Sort

  • M. Esponda
slide-17
SLIDE 17

Insertion-Sort

  • M. Esponda
slide-18
SLIDE 18

Insertion-Sort

<?

  • M. Esponda
slide-19
SLIDE 19

Insertion-Sort

<?

  • M. Esponda
slide-20
SLIDE 20

Insertion-Sort

<?

  • M. Esponda
slide-21
SLIDE 21

Insertion-Sort

<?

  • M. Esponda
slide-22
SLIDE 22

Insertion-Sort

  • M. Esponda
slide-23
SLIDE 23

Insertion-Sort

Sortierter Bereich

  • M. Esponda
slide-24
SLIDE 24

Insertion-Sort

Sortierter Bereich

  • M. Esponda
slide-25
SLIDE 25

Insertion-Sort

verschoben

  • M. Esponda
slide-26
SLIDE 26

Insertion-Sort

Größer als alle Elemente auf der linken Seite Es ist kein weiterer Vergleich notwendig

Bester Fall

  • M. Esponda
slide-27
SLIDE 27

Insertion-Sort

Kleiner als alle Elemente der linken Seite

Schlimmster Fall

  • M. Esponda
slide-28
SLIDE 28

Insertion-Sort

Alle Elemente müssen verschoben werden

  • M. Esponda
slide-29
SLIDE 29

Insertion-Sort

  • M. Esponda
slide-30
SLIDE 30

Insertion-Sort

  • M. Esponda
slide-31
SLIDE 31

Insertion-Sort

isort :: [ Integer ] -> [ Integer ] isort [] = [] isort (a:x) = ins a (isort x) ins :: Integer -> [Integer] -> [Integer] ins a [] = [a] ins a (b:y) | a<= b = a:(b:y) | otherwise = b: (ins a y)

Das Problem in Haskell ist vor allem der Speicherverbrauch

  • M. Esponda
slide-32
SLIDE 32

Insertion-Sort (imperativ)

Einfacher Sortieralgorithmus

  • In-Place und kein zusätzlicher Speicherbedarf O(1)
  • Stabil
  • gut für kleine Mengen oder leicht unsortierte Informationen

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

Eine geeignete Position wird gesucht und die Elemente des sortierten Bereichs verschoben Die einzusortierende Zahl wird in den gefundenen Platz kopiert

  • M. Esponda
slide-33
SLIDE 33

3 1 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

  • M. Esponda
slide-34
SLIDE 34

3 1 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j

  • M. Esponda
slide-35
SLIDE 35

3 1 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key 1

  • M. Esponda
slide-36
SLIDE 36

3 1 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key 1 k

  • M. Esponda
slide-37
SLIDE 37

3 1 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 1

>?

  • M. Esponda
slide-38
SLIDE 38

3 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 1

  • M. Esponda
slide-39
SLIDE 39

3 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 1

  • M. Esponda
slide-40
SLIDE 40

1 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 1

  • M. Esponda
slide-41
SLIDE 41

1 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 1

  • M. Esponda
slide-42
SLIDE 42

1 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 7

  • M. Esponda
slide-43
SLIDE 43

1 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 7

  • M. Esponda
slide-44
SLIDE 44

1 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 7

<?

  • M. Esponda
slide-45
SLIDE 45

1 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 7

  • M. Esponda
slide-46
SLIDE 46

1 3 7 2 6 5 9 4 8 3 1 7 len(seq)-1 seq

Insertion-Sort (imperativ)

def insertsort(seq): for j in range(1,len(seq)): key = seq[j] k = j-1; while k>=0 and seq[k]>key: seq[k+1] = seq[k] k = k-1 seq[k+1] = key

j key k 7

  • M. Esponda