تصویر زیر میتواند به شما در درک سریع تر و بهتر این الگوریتم کمک کند(تصویر متحرک است)

//Bubble Sort Algorithm
#include <stdio.h>

void swap(int *a,int *b){
int temp = *a;
*a = *b;
*b = temp;
}

int issorted(int arr[]){
for(int i = 0;i < 10;i++){
if(!(arr[i] <= arr[i+1]))
return 0;
}
return 1;
}

int main(){
int arr[10];
//filling the array
for (int i = 0;i < 10;i++){
printf("\nEnter Element %i: ",i);
scanf("%i",&arr[i]);
}
//showing the array
for (int i = 0;i < 10;i++){
printf("Element #%i is #%i\n",i,arr[i]);
}
printf("Starting sorting...\n");
//sorting the array
while(issorted(arr) == 0){//Until issorted returned 0 that means false
for (int i = 0;i < 10;i++){
if(arr[i] > arr[i+1])
swap(&arr[i],&arr[i+1]);
}
}
در کد بالا تابع swap مقدار دو متغیر عدد صحیح را باهم جابجا میکند و تابع issorted نیز همانطور که از نامش پیداست چک میکند که آرایه مرتب شده است یا خیر.