#include <stdio.h>
#include <stdlib.h>
//冒泡排序法
void BubbleSort(int arr[], int size){
//从后往前排序,因此[0,bound)为已经排好的
//[bound, size) 为待排序的
//每次找最小值放到前面去,意味着已排序区间多一个元素,待排序区间少一个元素
for (int bound = 0; bound < size; bound++){
//下面这重循环负责找到当前排序区间的最小值并放到bound位置
//从后往前排序,因此cur--. 否则越界
for (int cur = size - 1; cur > bound; cur--){
//当前一项数大于当前项时,交换
//改变if语句条件中的'>',可降序
if (arr[cur - 1] > arr[cur]){
int tmp = arr[cur - 1];
arr[cur - 1] = arr[cur];
arr[cur] = tmp;
}
}
}
}
int main()
{
int arr[5] = { 5, 8, 9, 7, 6 };
BubbleSort(arr, 5);
for (int i = 0; i < 5; i++){ //打印数组
printf(" %d", arr[i]);
}
putchar('\n');
system("pause");
return 0;
}
来源:https://www.cnblogs.com/Leafbud/p/12597377.html