C语言:用选择法对10个整数排序

请问有没有比这个在好点的方法?
/* 用选择法对10个整数排序 */
#include <stdio.h>
void main()
{
int num[20];
int a,b,c,t;
for (c=0;c<10;c++)
scanf("%d",&num[c]);
for (a=0;a<10;a++)
for (b=9;b>1;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=1;a<10;a++)
for (b=9;b>1;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=2;a<10;a++)
for (b=9;b>2;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=3;a<10;a++)
for (b=9;b>3;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=4;a<10;a++)
for (b=9;b>4;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=5;a<10;a++)
for (b=9;b>5;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=6;a<10;a++)
for (b=9;b>6;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=7;a<10;a++)
for (b=9;b>7;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
for (a=8;a<10;a++)
for (b=9;b>8;b--)
if (num[a]>num[b]) {t=num[a];num[a]=num[b];num[b]=t;}
printf("%d%d%d%d%d%d%d%d%d%d",num[0],num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9]);
getch();
}

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){  

int a[10]={7,9,1,5,3,4,2,8,0,6},b[10]={2,8,0,6,5,3,4,7,9,1},i,j,k;

for(i=0;i<10;i++){//选择法对a由小到大排序

for(k=i,j=k+1;j<10;j++)

if(a[k]>a[j])

k=j;

if(k!=i)

j=a[k],a[k]=a[i],a[i]=j;

printf("%2d",a[i]);//输出a

}

putchar('\n');

for(i=0;i<10;i++)//冒泡法对b由大到小排序

for(j=0;j<9;j++)

if(b[j]<b[j+1])

k=b[j],b[j]=b[j+1],b[j+1]=k;

for(i=0;i<10;printf("%2d",b[i++]));

putchar('\n');

return 0;

}

可以比较它们的异同……

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
#include <stdio.h>
//简单选择排序
void SelectSort(int r[ ], int n)
{
int i;
int j;
int index;
int temp;
for (i=0; i<n-1; i++) //对n个记录进行n-1趟简单选择排序
{
index=i;
for (j=i+1; j<n; j++) //在无序区中选取最小记录
if (r[j]<r[index])
index=j;
if (index!=i)
{
temp=r[i];
r[i]=r[index];
r[index]=temp;
}
}
}
void main()
{
int num[20];
int a,b,c,t;
for (c=0;c<10;c++)
scanf("%d",&num[c]);
SelectSort(num,10);//调用用SelectSort(num,10)即可
for(c=0;c<10;c++)
printf("%d ",num[c]);
getch();
}本回答被提问者采纳
第2个回答  2008-11-20
//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int a[10],i,j,k,t;
for (i=0;i<10;i++) scanf("%d",&a[i]);
for (i=0;i<9;++i){
k=i;
for (j=i+1;j<10;++j)
if(a[k]>a[j]) k=j;
if (k!=i){
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
for (i=0;i<10;++i) printf("%d\t",a[i]);
return 0;
}
//---------------------------------------------------------------------------
第3个回答  2008-11-20
#include<stdio.h>
int main(void)
{int p,num[10],i,j,q=0,t;
for (i=0;i<=9;i++)
scanf ("%d",&num[i]);
for (i=0;i<=9;i++)
for (j=i;j<=9;j++)
if (num[i]>q)
{t=j;
q=num[i];
}
p=num[i];
num[i]=q;
num[t]=p;
q=0;
}
for (i=0;i<=9;i++)
printf("%d",num[i]);
while (1);
}

C语言:用选择法对10个整数排序
int main(int argc,char *argv[]){ int a[10]={7,9,1,5,3,4,2,8,0,6},b[10]={2,8,0,6,5,3,4,7,9,1},i,j,k;for(i=0;i<10;i++){\/\/选择法对a由小到大排序 for(k=i,j=k+1;j<10;j++)if(a[k]>a[j])k=j;if(k!=i)j=a[k],a[k]=a[i],a[i]=...

c语言如何用选择排序对10个整数排序
for (i=0;i<10;i++) \/\/在c语言中,数组的下标从0开始 printf("%5d",a[i]); \/\/输出这10个数 printf("\\n"); \/\/以下8行是对这10个数排序 for (i=0;i<10;i++){min=i;for(j=i+1;j<10;j++)if (a[min]>a[j]) min=j;temp=a[i]; \/\/以下3行将a[i+1]~a[10]中...

C语言用选择法对10个整数排序。10个整数用scanf函数输入。
scanf("%d",&data[i]);\/\/输入10个整数 sort(data);for(i=0;i<10;i++)printf("%d ",data[i]);printf("\\n");return 0;} 选择法排序函数是sort()已经编写了。可以运行,已经测试了。

C语言怎么用选择法对10个整数排序?
int main(int argc,char *argv[]){ int a[10]={7,9,1,5,3,4,2,8,0,6},b[10]={2,8,0,6,5,3,4,7,9,1},i,j,k;for(i=0;i<10;i++){\/\/选择法对a由小到大排序 for(k=i,j=k+1;j<10;j++)if(a[k]>a[j])k=j;if(k!=i)j=a[k],a[k]=a[i],a[i]=...

c语言编程用选择法对10个整数排序
include<stdio.h>void selectsort(int *list,int len) \/\/选择排序{ int i,j;int temp, max_idx; for(i=0;i<len - 1;i++){max_idx = 0; for(j=0;j<len-i;j++) { if(list[max_idx]<list[j]) { max_idx = j; } }temp = list[max_idx];l...

用c语言实现:用选择法对10个整数排序。高手请帮帮忙。
void sort(int R[10]){ int i,j,h,temp;for(i=0;i<10;i++){ h=i;for(j=i+1;j<10;j++)if(R[j]<R[h])h=j;if(h!=j){ temp=R[i];R[i]=R[h];R[h]=temp;} } for(h=0;h<10;h++)printf("%5d",R[h]);} void main(){ int a[10]={3,2,1,4,5,9,...

C语言 | 选择法对10个数排序
C语言中,利用选择法对一组10个整数进行排序的实现方法直观易懂。该排序算法的基本思想是,每一轮比较中,从剩余未排序的数中选出最小的一个与当前未排序序列的第一个元素交换位置,直至所有元素有序。以下是排序过程的四个关键步骤:首先,通过键盘输入获取10个整数,作为待排序的数组。然后,程序会...

C语言编程题:用选择法对10个整数排序
int main(){ int i,j,min,t,a[10]={2,4,8,3,6,9,7,222,64,88};printf("排序前的序列为:\\n");for(i=0;i<10;i++)\/\/输出排序前的序列 { printf("%5d",a);} printf("\\n");for(i=0;i<9;i++){ min=i;\/\/把每次循环的第一个数作为最小值 for(j=i+1;j<10;j+...

C语言程序---用简单选择法对10个整数排序
{int i,j,n,a[10];printf("输入10个数:");for(i=0;i<10;i++)scanf("%d,",&a[i]);\/\/记得输入的时候后面加“,”for(i=0;i<n-1;i++)for(j=i;j<n;j++)if(a[i]>a[j]) \/\/改成(a[i]<a[j])可按大到小排序 { n=a[i];a[i]=a[j];a[j]=a[i];} pr...

用C语言编程:用选择法对10个整数排序,10个整数用scanf函数输入_百度...
1、打开visual C++ 6.0,准备一个空白的c语言文件,引入头文件,在main函数中定义变量和数组:2、接下来用scanf函数输入的10个数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:3、编译运行程序,输入任意的10个数,回车...

相似回答