/* Bubble sort */ #define FALSE 0 #define TRUE 1 #include <stdio.h> void bubble_sort_insanity(int *list, int list_size) { int j,k,temp,sorted=FALSE; while(!sorted) { sorted = TRUE; /* assume the list is sorted */ for(j=0;j<list_size-1;j++) { if(*(list+j) > *(list+j+1)) { sorted = FALSE; temp = *(list+j); *(list+j) = *(list+j+1); *(list+j+1) = temp; } } } } void bubble_sort_sanity(int list[], int list_size) { int j,k,temp,sorted=FALSE; while(!sorted) { sorted = TRUE; /* assume the list is sorted */ for(j=0;j<list_size-1;j++) { if(list[j] > list[j+1]) { sorted = FALSE; temp = list[j]; list[j] = list[j+1]; list[j+1] = temp; } } } } void dump_array(int array[], int size) { int i; for(i=0;i<size;i++) printf("%d ",array[i]); printf("\n"); } int main() { int array1[5]={2,4,6,4,5}, array2[10]={1,6,5,4,3,9,0,8,1,2}, array3[5]={2,4,6,4,5}, array4[10]={1,6,5,4,3,9,0,8,1,2}; dump_array(array1,5); dump_array(array2,10); dump_array(array3,5); dump_array(array4,10); bubble_sort_sanity(array1,5); bubble_sort_sanity(array2,10); bubble_sort_insanity(array3,5); bubble_sort_insanity(array4,10); dump_array(array1,5); dump_array(array2,10); dump_array(array3,5); dump_array(array4,10); }