equal
deleted
inserted
replaced
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 } |