冒泡排序
来源:互联网 发布:互联网新闻数据分析 编辑:程序博客网 时间:2024/06/03 12:05
冒泡排序是一种最为常用的排序方法。是一类具有“交换”性质的排序方法。其基本思想如下:
将序列中的第一个元素与第二个元素进行比较,若前者大于后者,则将第一个元素与第二个元素进行位置交换,否则不交换。
然后让第二个与第三个元素进行比较……
等等
直到将第n-1个元素与第n个元素进行比较为止。
例题:编写一个c程序,实现数据序列{1,5,6,3,2,8,4,9,7,0};的从小到大得排序,并且输出数列元素。
#include <stdio.h>
void bubblesort(int k[],int n)
{
int i,j,tmp,flag=1;
for(i=1;i<=n-1 && flag==1;i++)
{
flag=0;
for(j=0;j<n-i;j++)
{
if(k[j]>k[j+1])/*数据交换*/
{
tmp=k[j+1];
k[j+1]=k[j];
k[j]=tmp;
flag=1;
}
}
}
}
main()
{
int i,a[10]={1,5,6,3,2,8,4,9,7,0};
printf("原序列的元素的排列顺序:\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
bubblesort(a,10);
printf("\n冒泡排列好的顺序是:\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
getchar();
}
其运行结果如下:
程序设计好的地方:
1、在算法中设置了一个flag。规定当flag为1时,说明本次排序中有元素交换的动作,因此,还需要下一次的比较。当flag为0时,说明排序已经排好,只要比较就行了。
2、注意算法中用的是数组,故j的值应该从0开始。
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 纯虚函数的使用汇总
- Lucene——QueryParse搜索
- 将图片上传到数据库中
- 解决libc.so.6: version `GLIBC_2.14' not found问题
- Delphi静态变量
- 冒泡排序
- EJB3.0自学笔记,自学视频为黎活明老师主讲
- 各类分析函数调用关系图的工具
- 分析函数调用关系图(call graph)的几种方法
- 代码中创建数据库
- 赵老师的一些建议
- 分享rfc网络协议方面的文章
- C++中你不知道的语法
- h264 丢包花屏处理的一个想法