c语⾔实现冒泡排序(Bubblesort)冒泡排序的原理:⽐较两个相邻的元素。如果第⼀个⽐第⼆个⼤就交换他们两个(升序举例)。
对每⼀对相邻元素做同样的⼯作,从开始第⼀对到结尾最后⼀对。最后的元素应该会是最⼤的数。
针对所有的元素重复以上的步骤,除了最后⼀个。
持续每次对越来越少的元素重复上⾯的步骤,直到没有任何⼀对数字需要⽐较。
例如给出⼀组⽆序数字: 3  6  4  2  11  10  5 ;要求从⼩到⼤排序。
它冒泡⽐较第⼀趟⽐较过程如下所⽰:
第⼀趟⽐较之后将最⼤的数字 11 沉淀到队尾。
每次⽐较都是两两交换,把每次⽐较的数的最⼤的沉淀到队尾。
源代码:
#include<stdio.h>
void BubbleSort(int *arr,int len)//O(n^2),O(1),稳定{
int tmp;
for(int i=0;i<len-1;i++)
{
for(int j=0;j<len-1-i;j++)
{
if(arr[j] > arr[j+1])
{
tmp = arr[j];
arr[j] = arr[j+1];c语言的冒泡排序算法
arr[j+1] = tmp;
}
}
}
}
void Show(int *arr,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
int main()
{
int arr[]={3,6,4,2,11,10,5};
int len=sizeof(arr)/sizeof(arr[0]);
BubbleSort(arr,len);
Show(arr,len);
return 0;
}
结果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。