/* Algoritm BubbelSort(lista,n) * * Exempel föreläsning 000203 * */ #include #include #include void byt(int *a, int *b) { int t; /* temporär variabel */ t = *a; *a = *b; *b = t; } void bubbel(int *lista,int n) { int i,sist; int bytt; /* logisk */ sist = n-1; /* sista index i listan */ do { bytt = 0; /* logiskt false */ for (i=0;i <= sist-1; i++) { if (*(lista+i) > *(lista+i+1)) { byt(lista+i,lista+i+1); bytt = 1; /* logiskt true */ } } sist = sist - 1; }while (bytt || sist==1); } /* bubbel */ int main(void) { int res[] = {14,0,4,2,-5,8,6,7,3}; int lgd = 9; int i; printf("----- Listan osorterad -----\n"); for (i=0;i <= lgd-1; i++) printf("res[%i]=%i\n",i,res[i]); bubbel(res,lgd); printf("------- Listan sorterad --------\n"); for (i=0;i <= lgd-1; i++) printf("res[%i]=%i\n",i,res[i]); return 0; }