您的位置:首页 > 编程语言 > C语言/C++

常见排序方法(c语言)---冒泡法,选择法

2012-12-31 12:18 267 查看
冒泡排序(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];
}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐