冒泡排序核心思想:
两个相邻的元素进行比较,进行交换;
例如:
9 8 7 6 5 4 3 2 1 0中9和8进行交换
8 9 7 6 5 4 3 2 1 0中9和7进行交换
8 7 9 6 5 4 3 2 1 0中9和6进行交换
....
....
....
8 7 6 5 4 3 2 1 0 9 至此9换至最高位
至此,以上称为一次冒泡排序
第二次:
8 7 6 5 4 3 2 1 0 9
7 8 6 5 4 3 2 1 0 9
7 6 8 5 4 3 2 1 0 9
.....
.....
.....
7 6 5 4 3 2 1 8 0 9
至此,第二次冒泡排序结束
...
....
......
代码实现:
#include <stdio.h>
void bubble_sort(int arr[], int n)
{
for (int i = 0; i < n - 1; i++)
{
//一次冒泡排序
for (int j = 0; j < n - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
//交换
int c = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = c;
}
}
}
}
//冒泡排序
int main()
{
//把数组排成升序
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
//计算冒泡排序次数
int n = sizeof(arr) / sizeof(arr[0]);
//冒泡排序算法,对数组进行排序
bubble_sort(arr , n);
for (int i = 0; i < n; i++)
{
printf("%d", arr[i]);
}
return 0;
}