冒泡排序

来源:互联网 发布:ubuntu torch7 安装 编辑:程序博客网 时间:2024/06/04 19:17

冒泡排序就是利用沉浮定理来的。将大数上浮,小数下沉。或者相反。

这种算法就是每次比较一趟,将最值依次往后放。

比如说:

有一组数  :9,7,4,2,3,6,4,8,1 共九个数

冒泡就是这样实现的。先第一个数与第2个数比,数大就给后面,那么依次比最,大数自然会放最后面

第1次                        7 4 2 3 6 4 8 1 9

第2次                        4 2 3 6 4 7 1 8 9

第3次                       2 3 4 4 6 1 7 8 9

第4次                        2 3 4 4 1 6 7 8 9

第5次                        2 3 4 1 4 6 7 8 9

第6次                        2 3 1 4 4 6 7 8 9

第7次                        2 1 3 4 4 6 7 8 9

第8次                        1 2 3 4 4 6 7 8 9

结果是:

1 2 34 4 6 7 8 9 


#include<stdio.h>
#include<stdlib.h>
#include<string.h>




main()
{
int n;
char str[100];
int i,j;
char temp;
printf("please input the string\n");
scanf("%s",str);
n=strlen(str);
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(str[i]>str[j])
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
printf("the result is:%s",str);
printf("\n");
return 0;
}

时间复杂度O(n^2)。空间复杂度O(1)稳定性强






原创粉丝点击