| arrays/bubble-sort.c - Hele 'bubble sort' programmet - med løbende udskrift af arrayet. | Lektion 9 - slide 18 : 30 Program 1 |
#include <stdio.h>
void bubble_sort(int a[], int n);
void prn_array(char* s, const int a[], int n);
void swap(int *p, int *q);
int main(void){
int a[] = {7, 3, 66, 3, -5, 22, -77, 2};
int n;
n = sizeof(a) / sizeof(int); /* Notice how the size of a is found */
prn_array("Before", a, n);
bubble_sort(a, n);
prn_array(" After", a, n);
putchar('\n');
return 0;
}
void bubble_sort(int a[] , int n){ /* n is the size of a[] */
int i, j;
for (i = 0; i < n - 1; ++i){
for (j = n - 1; j > i; --j)
if (a[j-1] > a[j])
swap(&a[j-1], &a[j]);
prn_array("During", a, n);
}
}
void prn_array(char* s , const int a[] , int n){
int i;
printf("\n %s sorting:", s);
for (i = 0; i < n; ++i)
printf("%5d", a[i]);
putchar('\n');
}
void swap(int *p, int *q){
int tmp;
tmp = *p;
*p = *q;
*q = tmp;
}