#include <stdio.h>
#include <stdbool.h>
#define MAX 4
int list[MAX] = {8, 4, 9, 1};
void display(){
int i;
// navigate through all items
for(i = 0; i < MAX; i++){
}
}
void bubbleSort() {
int temp;
int i,j;
bool swapped = false;
// loop through all numbers
for(i = 0; i < MAX-1; i++) {
swapped = false;
// loop through numbers falling ahead
for(j = 0; j < MAX-1-i; j++) {
printf(" Items compared: [ %d, %d ] ", list
[j
],list
[j
+1]);
// check if next number is lesser than current no
// swap the numbers.
// (Bubble up the highest number)
if(list[j] > list[j+1]) {
temp = list[j];
list[j] = list[j+1];
list[j+1] = temp;
swapped = true;
printf(" => swapped [%d, %d]\n",list
[j
],list
[j
+1]); }else {
}
}
// if no number was swapped that means
// array is sorted now, break the loop.
if(!swapped) {
//break;
}
printf("Iteration %d#: ",(i
+1)); display();
}
}
main(){
display();
bubbleSort();
display();
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CgojZGVmaW5lIE1BWCA0CgppbnQgbGlzdFtNQVhdID0gezgsIDQsIDksIDF9OwoKdm9pZCBkaXNwbGF5KCl7CiAgIGludCBpOwogICBwcmludGYoIlsiKTsKCQogICAvLyBuYXZpZ2F0ZSB0aHJvdWdoIGFsbCBpdGVtcyAKICAgZm9yKGkgPSAwOyBpIDwgTUFYOyBpKyspewogICAgICBwcmludGYoIiVkICIsbGlzdFtpXSk7CiAgIH0KCQogICBwcmludGYoIl1cbiIpOwp9Cgp2b2lkIGJ1YmJsZVNvcnQoKSB7CiAgIGludCB0ZW1wOwogICBpbnQgaSxqOwoJCgkKICAgYm9vbCBzd2FwcGVkID0gZmFsc2U7ICAgICAgIAogICAKICAgLy8gbG9vcCB0aHJvdWdoIGFsbCBudW1iZXJzIAogICBmb3IoaSA9IDA7IGkgPCBNQVgtMTsgaSsrKSB7IAogICAgICBzd2FwcGVkID0gZmFsc2U7CgkJCiAgICAgIC8vIGxvb3AgdGhyb3VnaCBudW1iZXJzIGZhbGxpbmcgYWhlYWQgCiAgICAgIGZvcihqID0gMDsgaiA8IE1BWC0xLWk7IGorKykgewogICAgICAgICBwcmludGYoIiAgICAgSXRlbXMgY29tcGFyZWQ6IFsgJWQsICVkIF0gIiwgbGlzdFtqXSxsaXN0W2orMV0pOwoKICAgICAgICAgLy8gY2hlY2sgaWYgbmV4dCBudW1iZXIgaXMgbGVzc2VyIHRoYW4gY3VycmVudCBubwogICAgICAgICAvLyAgIHN3YXAgdGhlIG51bWJlcnMuIAogICAgICAgICAvLyAgKEJ1YmJsZSB1cCB0aGUgaGlnaGVzdCBudW1iZXIpIAoJCQkKICAgICAgICAgaWYobGlzdFtqXSA+IGxpc3RbaisxXSkgewogICAgICAgICAgICB0ZW1wID0gbGlzdFtqXTsKICAgICAgICAgICAgbGlzdFtqXSA9IGxpc3RbaisxXTsKICAgICAgICAgICAgbGlzdFtqKzFdID0gdGVtcDsKCiAgICAgICAgICAgIHN3YXBwZWQgPSB0cnVlOwogICAgICAgICAgICBwcmludGYoIiA9PiBzd2FwcGVkIFslZCwgJWRdXG4iLGxpc3Rbal0sbGlzdFtqKzFdKTsKICAgICAgICAgfWVsc2UgewogICAgICAgICAgICBwcmludGYoIiA9PiBub3Qgc3dhcHBlZFxuIik7CiAgICAgICAgIH0KCQkJCiAgICAgIH0KCiAgICAgIC8vIGlmIG5vIG51bWJlciB3YXMgc3dhcHBlZCB0aGF0IG1lYW5zIAogICAgICAvLyAgIGFycmF5IGlzIHNvcnRlZCBub3csIGJyZWFrIHRoZSBsb29wLiAKICAgICAgaWYoIXN3YXBwZWQpIHsKICAgICAgICAgLy9icmVhazsKICAgICAgfQogICAgICAKICAgICAgcHJpbnRmKCJJdGVyYXRpb24gJWQjOiAiLChpKzEpKTsgCiAgICAgIGRpc3BsYXkoKTsgICAgICAgICAgICAgICAgICAgICAKICAgfQoJCn0KCm1haW4oKXsKICAgcHJpbnRmKCJJbnB1dCBBcnJheTogIik7CiAgIGRpc3BsYXkoKTsKICAgcHJpbnRmKCJcbiIpOwoJCiAgIGJ1YmJsZVNvcnQoKTsKICAgcHJpbnRmKCJcbk91dHB1dCBBcnJheTogIik7CiAgIGRpc3BsYXkoKTsKfQ==
Input Array: [8 4 9 1 ]
Items compared: [ 8, 4 ] => swapped [4, 8]
Items compared: [ 8, 9 ] => not swapped
Items compared: [ 9, 1 ] => swapped [1, 9]
Iteration 1#: [4 8 1 9 ]
Items compared: [ 4, 8 ] => not swapped
Items compared: [ 8, 1 ] => swapped [1, 8]
Iteration 2#: [4 1 8 9 ]
Items compared: [ 4, 1 ] => swapped [1, 4]
Iteration 3#: [1 4 8 9 ]
Output Array: [1 4 8 9 ]