我们先来了解一下冒泡排序
冒泡排序的思想就是把两两相连的两个元素进行比较,并且可能的话需要交换
举例:把9876543210变为升序
第一趟
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边成最后一位
8 7 6 5 4 3 2 1 0 9
一趟冒牌排序10个数字排序9个比较
第二趟
第一趟走完了接下来就是第二趟
7 8 6 5 4 3 2 1 0 9
也是和上面的一样依次比较直到为
7 6 5 4 3 2 1 0 8 9
二趟冒泡排序9个数字排序8对比较
这样我们就可以得出n个数字排序n-1个比较
通过对上面冒泡排序的解释我们来做一个题目
利用函数对9876543210进行升序
#include <stdio.h>
int main()
{
int arr[]={9,8,7,6,5,4,3,2,1,0};//创建一个数组里面有9876543210这几个数
int sz=sizeof(arr)/sizeof(arr[0]);//计算数组元素的个数
bubble_sort=(arr,sz);//传参数组和数组个数
return 0;
}
void bubble_sort(int arr[],int sz)//接收函数
{
int i=0;//定义i(假如9,9的下标就是0)
for(i=0;i<sz-1;i++)//冒泡排序走的趟数
{
int j=0;
for(j=0;j<sz-1-i;j++)//数组下标元素
{
if(arr[j]>arr[j+1])//如果9>8
{
int tmp=arr[j];//把9传入tmp
arr[j]=arr[j+1];//把8传入arr[j]
arr[j+1]=tmp;//把9传入arr[j+1](总的来说就是把9和8换个位置)
}
}
}
}
有错误请指正