#include <stdbool.h>
void bubbling_sort(int arr[], int length) { bool flag = true; printf("排序前的序列:\n"); for(int i = 0; i < length; i++) { printf("%d ", arr); } printf("\n"); // 使用两个for循环进行冒泡排序 for(int i = 0; i < length - 1; i++) { flag = true;//进入某次循环后将flag重新定义为true。 printf("开始第%d次排序。\n", i + 1); for(int j = 1; j < length - i; j++) { if(arr[j] < arr[j - 1]) { flag = false; int temp = 0; temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; printf("交换了第%d和第%d个元素。\n", j, j + 1); } } if(flag) { printf("在第%d次没有交换数据,排序完成。\n", i + 1); break; } printf("第%d次排序完成。排序结果:\n", i + 1); for(int i = 0; i < length; i++) { printf("%d ", arr); } printf("\n"); } //输出排序后的结果 printf("排序结果:\n"); for(int i = 0; i < length; i++) { printf("%d ", arr); } printf("\n"); }
|