#include <stdio.h>
void bubble_sort(int arr[], int length) {
int i;
int j;
int tmp;
int flag;
for (i = 0; i < length - 1; ++i) { // 最多进行length-1趟操作
flag = 1;
for (j = 0; j < length - 1 - i; ++j) { // 对已排好序的数据之前的数据进行排序
if (arr[j] > arr[j + 1]) {
tmp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tmp;
flag = 0;
}
}
if (1 == flag) // 如果本趟排序没有发现任何逆序,直接结束循环
break;
}
}
int main(int argc, char** argv) {
int a[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
int length = sizeof(a) / sizeof(int);
bubble_sort(a, length);
int index;
for (index = 0; index < length; ++index) {
printf("%d\n", a[index]);
}
}
冒泡排序算法
最新推荐文章于 2025-06-05 23:24:07 发布