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

#include<iostream>
using namespace std;

void swap(int *a,int *b);
int[] sort(int arr[]);
void print(int arr[]);

int main(){
int arr[10];
for (int i=1;i<10;i++){
cout << "Enter element #" << i << ": " << endl;
cin >> arr[i];
}
print(arr);
arr = sort(arr);
cout << "Sorted: ";
print(arr);
}
int[] sort(int arr[]) {
bool swapped = true;
int j = 0;
int tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < n - j; i++) {
if (arr[i] > arr[i + 1]) {
swap(&arr[i],&arr[i+1]);
swapped = true;
}
}
}
return arr;
}
void print(int arr[]){
for(int i = 0;i<10;i++){
cout << arr[i] << ",";
}
cout << endl;
}
void swap(int *a,int *b){
int tmp = *a;
*a = *b;
*b = tmp;
}