算法思想:
1.冒泡排序第一轮是筛选出一个最大值放到数据的最后
2.然后把最后一位移出待比较的数据中,比较剩余数据(总减去第i轮)的大小
3.依次类推从最大值(最高位)->最小值(最低位)全部确定
时间复杂度:
冒泡排序最好的时间复杂度为O(n) ,冒泡排序的最坏时间复杂度为O(n2),
因此冒泡排序总的平均时间复杂度为O(n2)。
程序实现:
#include "stdio.h"
void Bubble_sort(int *nr,int len);//功能:实现冒泡排序
int main()
{
int a[10]={0};
int len,i;
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
len=sizeof(a)/4;//获取待排序数组的长度
Bubble_sort(a,len);//开始冒泡排序
for(i=0;i<len;i++)//输出排序后的结果
{
printf("%d,",a[i]);
}
return 0;
}
void Bubble_sort(int *nr,int len)
{
int i,j,temp;
for(i=0;i<len-1;i++)//排序len个数据只需要len-1轮就可以
{
for(j=0;j<len-1-i;j++)//选出未排序数据中的最大值
{
if(nr[j]>nr[j+1])
{
temp=nr[j];
nr[j]=nr[j+1];
nr[j+1]=temp;
}
}
}
}