Selection-Sort Insertion-Sort Bubble-Sort. Selection-Sort

  • View
    106

  • Download
    2

Embed Size (px)

Transcript

  • Folie 1
  • Selection-Sort Insertion-Sort Bubble-Sort
  • Folie 2
  • Selection-Sort
  • Folie 3
  • Selection-Sort-Beschreibung Suche das kleinste Element aus der unsortierten Liste und tausche es mit dem Element an der nullten Position. Nun besteht die Liste aus einem sortierten Teil an der nullten Position und einem unsortierten Teil an den anderen Positionen. Suche nun stets das kleinste Element aus der unsortierten Teilliste und tausche es mit dem nullten Element der unsortierten Teilliste. Die sortierte Teilliste ist damit um ein Element gewachsen. Wiederhole diesen Vorgang (n-1) mal.
  • Folie 4
  • 236174 Selection-Sort j = 0
  • Folie 5
  • 236174 Selection-Sort min = 0 j = 0
  • Folie 6
  • 236174 Selection-Sort i = 1 min = 0 j = 0
  • Folie 7
  • 236174 Selection-Sort i = 1 min = 1 j = 0
  • Folie 8
  • 236174 Selection-Sort i = 2 min = 1 j = 0
  • Folie 9
  • 236174 Selection-Sort i = 3 min = 1 j = 0
  • Folie 10
  • 236174 Selection-Sort i = 3 min = 3 j = 0
  • Folie 11
  • 236174 Selection-Sort i = 4 min = 3 j = 0
  • Folie 12
  • 236174 Selection-Sort i = 5 min = 3 j = 0
  • Folie 13
  • 236174 Selection-Sort i = 5 tausche (a[j], a[min]) min = 3 j = 0
  • Folie 14
  • 216374 Selection-Sort sortiert j = 0
  • Folie 15
  • 216374 Selection-Sort sortiert j = 1
  • Folie 16
  • 216374 Selection-Sort sortiert min = 1 j = 1
  • Folie 17
  • 216374 Selection-Sort sortiert min = 1 i = 2 j = 1
  • Folie 18
  • 216374 Selection-Sort sortiert min = 1 i = 3 j = 1
  • Folie 19
  • 216374 Selection-Sort sortiert min = 1 i = 4 j = 1
  • Folie 20
  • 216374 Selection-Sort sortiert min = 1 i = 5 j = 1
  • Folie 21
  • 216374 Selection-Sort sortiert min = 1 i = 5 tausche (a[j], a[min]) j = 1
  • Folie 22
  • 216374 Selection-Sort sortiert j = 1
  • Folie 23
  • 216374 Selection-Sort sortiert j = 2
  • Folie 24
  • 216374 Selection-Sort sortiert min = 2 j = 2
  • Folie 25
  • 216374 Selection-Sort sortiert min = 2 i = 3 j = 2
  • Folie 26
  • 216374 Selection-Sort sortiert min = 3 i = 3 j = 2
  • Folie 27
  • 216374 Selection-Sort sortiert min = 3 i = 4 j = 2
  • Folie 28
  • 216374 Selection-Sort sortiert min = 3 i = 5 j = 2
  • Folie 29
  • 216374 Selection-Sort sortiert min = 3 i = 5 j = 2 tausche (a[j], a[min])
  • Folie 30
  • 213674 Selection-Sort sortiert j = 2
  • Folie 31
  • 213674 Selection-Sort sortiert j = 3
  • Folie 32
  • 213674 Selection-Sort sortiert j = 3 min = 3
  • Folie 33
  • 213674 Selection-Sort sortiert j = 3 min = 3 i = 4
  • Folie 34
  • 213674 Selection-Sort sortiert j = 3 min = 3 i = 5
  • Folie 35
  • 213674 Selection-Sort sortiert j = 3 min = 5 i = 5
  • Folie 36
  • 213674 Selection-Sort sortiert j = 3 min = 5 i = 5 tausche (a[j], a[min])
  • Folie 37
  • 213476 Selection-Sort sortiert j = 3
  • Folie 38
  • 213476 Selection-Sort sortiert j = 4
  • Folie 39
  • 213476 Selection-Sort sortiert j = 4 min = 4
  • Folie 40
  • 213476 Selection-Sort sortiert j = 4 min = 4 i = 5
  • Folie 41
  • 213476 Selection-Sort sortiert j = 4 min = 5 i = 5
  • Folie 42
  • 213476 Selection-Sort sortiert j = 4 min = 5 i = 5 tausche (a[j], a[min])
  • Folie 43
  • 213467 Selection-Sort sortiert j = 4
  • Folie 44
  • 213467 Selection-Sort sortiert j = 4
  • Folie 45
  • a[i] < a[min] solange i < n min = i i = j+1 i++ tausche a[j] mit a[min] ja nein solange j < n-1 j = 0 j++ min = j Selection-Sort Nassi-Shneiderman-Diagramm
  • Folie 46
  • public class SelectionSortVersion1 { public static void main(String[] args) { int[] a = {3,2,6,1,7,4}; zeigeArray(a); int min = 0; for (int j=0; j 0 und a[i-1] > e i-- solange j < n j = 1 e = a[j] a[i] = a[i-1] a[i] = e j++">
  • i = j solange i > 0 und a[i-1] > e i-- solange j < n j = 1 e = a[j] a[i] = a[i-1] a[i] = e j++
  • Folie 71
  • public class InsertionSortVersion1 { public static void main(String[] args) { int[] a = {4,2,3,6,1,5}; zeigeArray(a); int e = 0; for (int j=1; j0) && (a[i-1]>e)) { a[i] = a[i-1]; j--; } a[i] = e; zeigeArray(a); } public static void zeigeArray(int[] x) { for (int i=0;i
  • i=0 solange i < n-1 ja solange j < n-1 j=1 a[i] > a[i+1] tausche a[i] mit a[i+1] nein i++ j++
  • Folie 109