sort.c
changeset 70 ded389a5dc2a
parent 48 b94d657a9acb
child 72 4103c76d5bf2
equal deleted inserted replaced
69:b5912e5f899f 70:ded389a5dc2a
    38     printf ("%8s finished after %10lu swaps and %10lu Iterations.\n", func, counter, iters);
    38     printf ("%8s finished after %10lu swaps and %10lu Iterations.\n", func, counter, iters);
    39     counter = iters = 0;
    39     counter = iters = 0;
    40 }
    40 }
    41 
    41 
    42 /**
    42 /**
    43  * Laufzeitverhalten: n*(n-1) Durchläufe zum Sortieren von n Elementen...
    43  * Laufzeitverhalten: n^2-1 Durchläufe zum Sortieren von n Elementen...
    44  */
    44  */
    45 void lazysort (int *v, int n, int (*compare_func) (int *, int *))
    45 void lazysort (int *v, int n, int (*compare_func) (int *, int *))
    46 {
    46 {
    47     int i, j;
    47     int i, j;
    48 
    48 
    55     }
    55     }
    56     statistic ("Lazy");
    56     statistic ("Lazy");
    57 }
    57 }
    58 
    58 
    59 /**
    59 /**
    60  * Laufzeitverhalten: (1/2)*n*(n-1) Durchläufe zum Sortieren von n Elementen...
    60  * Laufzeitverhalten: (1/2)*n^2-1 Durchläufe zum Sortieren von n Elementen...
    61  */
    61  */
    62 void bubblesort (int *v, int n, int (*compare) (int *, int *))
    62 void bubblesort (int *v, int n, int (*compare) (int *, int *))
    63 {
    63 {
    64     int i, j;
    64     int i, j;
    65 
    65 
    66     for (i = (n - 1); i >= 0; i--) {
    66     for (i = (n - 1); i > 0; i--) {
    67         for (j = 1; j <= i; j++) {
    67         for (j = 1; j <= i; j++) {
    68             if (compare (&v[j - 1], &v[j])) {
    68             if (compare (&v[j - 1], &v[j])) {
    69                 swap (v, j - 1, j);
    69                 swap (v, j - 1, j);
    70             }
    70             }
    71         }
    71         }