常见排序方法(c语言)---冒泡法,选择法
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
/*
用选择法对10个数进行排序
*/
#include<stdio.h>
void main()
{
int i,j,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10-1;i++)
{//n个数要进行n-1趟比较
for(j=i+1;j<10;j++) //每趟比较n-i次
if(a[j-1]>a[j]) //依次比较两个相邻的数,将小数放在前面,大数放在后面
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++) //输出比较之后的数组
printf(" %d",a[i]);
}
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾(目前已被排序的序列)。以此类推,直到所有元素均排序完毕.
#include<stdio.h>
void main()
{
int i,j,min,a[10];
printf("Please input 10 integers:\n");
for(i=0;i<10;i++)
scanf("%d,&a[i];
for(i=0;i<10;i++)
printf("original:%d\n", a[i];
for(i=0;i<10-1;i++)
{
min=i;
for(j=i+1;j<10;j++)
{
if (a[min]>a[j] min=j;
}
if(i!=min)
{
int tmp=a[i];
a[i]=a[min];
[min]=tmp;
}
}
for(i=0;i<10;i++)
printf("bubbled:%d\n", a[i];
}
附件列表
Java-Android手机千人开发交流QQ群:38088312,PHP开发千人高级交流QQ群:50194090,欢迎加入学习!本站为
非赢利站点,挖掘网络资源,分享个人兴趣,如有侵犯您的版权,请联系我们,我们会第一时间删除内容或添加转载出处,敬请谅解!
如果您认为本词条还有待完善,请 编辑
上一篇 C语言中“.”与“->”有什么区别? 下一篇 C程序小练习
