Chinaunix首页 | 论坛 | 博客
  • 博客访问: 107693
  • 博文数量: 106
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 1165
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-06 12:51
文章分类

全部博文(106)

文章存档

2012年(106)

我的朋友

分类: C/C++

2012-05-07 17:06:39

5、选择排序(升序)

思路:N个数,每次从剩下的数中选择最小的数(记住它的下标)与这组数中最前面的数交换

,数的个数依次减少。一趟排序完成后最前面的数最小。共进行N-1趟排序。

完整程序

#include

#define N 10

int main()

{

int num[N];

int i,j,k;

int t;

for(i=0;i

scanf("%d",&num[i]);

for(i=0;i

{

k=i;

for(j=i+1;j

if(num[k]>num[j]) k=j;

if(k!=i) {t=num[k];num[k]=num[i];num[i]=t;}

}

for(i=0;i

printf("%d ",num[i]);

return 0;

}

封装函数

void xuanze(int num[N])

{

int i,j,k;

int t;

for(i=0;i

{

k=i;

for(j=i+1;j

if(num[k]>num[j]) k=j;

if(k!=i) {t=num[k];num[k]=num[i];num[i]=t;}

}

}

调用函数

#include

#define N 10

int main()

{

int num[N];

int i,j,k;

int t;

void xuanze(int num[N]);

for(i=0;i

scanf("%d",&num[i]);

xuanze(num);

for(i=0;i

printf("%d ",num[i]);

return 0;

}

阅读(307) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~