void sort(int arr[],int len) {
int tmp = -;
for(int i = ; i<len; i++) {
printf("第%d轮:\n", i);
// len-i+1:新轮比上轮可以少一次比较,-i
// i从1开始,第一轮不能少,故+1以修正
for(int j = ; j < len-i+; j++) {
if (arr[j-] > arr[j]) {
tmp = arr[j-];
arr[j-] = arr[j];
arr[j] = tmp;
}
printArr(arr, len);
}
}
} void printArr(int arr[],int len ) {
for(int i = ; i<len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
main中调用
int a[] = {,,,,}; sort(a, );
输出结果:
第1轮:
4 5 3 2 1
4 3 5 2 1
4 3 2 5 1
4 3 2 1 5
第2轮:
3 4 2 1 5
3 2 4 1 5
3 2 1 4 5
第3轮:
2 3 1 4 5
2 1 3 4 5
第4轮:
1 2 3 4 5