C语言冒泡排序算法
冒泡排序
冒泡排序(Bubble Sort) 是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
具体步骤如下:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序的时间复杂度为O(n^2),其中n是待排序的元素个数。虽然冒泡排序不是最高效的排序算法,但由于其实现简单易懂,常常在面试的笔试中高频出现。
/*******************************************************************
*
* 函数名称: BubbleSort
* 函数功能: 利用冒泡排序算法实现对数据进行升序排列
* 函数参数:
* @a :int buf[] 定义的数组
* @b :bufsize 数组的元素个数
*
* 返回结果:
* 注意事项: None
* 函数作者: m17872844806@163.com
* 创建日期: 2024/05/2
* 修改历史:
* 函数版本: V1.0
* *****************************************************************/
void BubbleSort(int buf[],int bufsize)
{
int temp=0;
for(int i=0;i<bufsize;i++)//需要排序的轮数
{
for(int j=0;j<bufsize-n;j++)//由于每一轮都有一个数已经排好序至末端向前,所以减去排序的轮数n
{
if(buf[j]>buf[j+1])//如果第一个数比第二大,交换两数位置
{
temp=buf[j];
buf[j]=buf[j+1];
buf[j+1]=temp;
}
}
}
}
如果该函数接口代码有什么问题,请将问题发至网易邮箱 m17872844806@163.com,作者将及时改正,欢迎与各位老爷交流讨论。
麻烦三连加关注!!!!
比心