冒泡排序原理
冒泡排序是一种简单的排序算法。
工作原理:
- 通过重复遍历要排序的数列,依次比较两个相邻的元素。
- 如果发现它们的顺序错误(如从大到小或首字母从Z到A),就把它们交换过来。
- 这个过程会重复进行,直到没有相邻的元素需要交换,也就是该数列已经排好序了。
由动图更清晰的展示出冒泡排序的规则
每相邻的两个数都需要遍历先遍历第一遍,将最大数放置最后一位
紧接着从此时的第一位数再次遍历,直到将第二大数放置倒数第二位,最后一位参与遍历
以此类推……
直到遍历到还剩一位结束
冒泡排序代码
#include<stdio.h>
void bubble_sort(int arr[], int sz)//参数接收数组元素个数
{
int i = 0;
//趟数
for (i = 0; i < sz - 1; i++)
{
int j = 0;
//一趟内部比较的对数
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
int arr[] = { 3,1,7,5,8,9,0,2,4,6 };
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, sz);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
打印结果为