/* Algoritm BubbelSort(lista,n) * * Exempel föreläsning 000203 * */ #include #include #include int main(void) { int lista[] = {14,0,4,2,8,6,7,3,-5}; int i,j,sist,n,temp; int bytt; /* logisk */ n = 9; sist = n-1; /* sista index i listan */ printf(" ------ Listan före sortering -----\n"); for (i=0;i <= n-1; i++) printf("%5i",lista[i]); printf("\n"); do { bytt = 0; /* logiskt false */ printf(" ------------- varv %i -------------\n",n-sist); for (i=0;i <= sist-1; i++) { if (lista[i] > lista[i+1]) { temp = lista[i]; lista[i] = lista[i+1]; lista[i+1] = temp; bytt = 1; /* logiskt true */ for (j=0;j <= n-1; j++) /* Spåra */ printf("%5i",lista[j]); printf(" <-- %i och %i har bytt plats\n",i,i+1); } } sist = sist - 1; }while (bytt); printf(" -------- Listan sorterad --------\n"); for (i=0;i <= n-1; i++) printf("%5i",lista[i]); printf("\n"); return 0; }