C语言 编程序 用选择法对10个数按从小到大的顺序排列。

如题所述

第1个回答  推荐于2016-12-02
int arr[10];

void sort()
{
for(int i=0;i<10;i++)
{
for(int j=i;j++;j<10)
{
if(arr[j]<arr[i])
{
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
}

void main()
{
int i;
for( i=0;i<10;i++)
scanf("%d", arr[i]);
int j;
for(j=0;j<10;j++)printf("%d ", arr[j])
sort();
for(int i=0;i<10;i++)printf("%d ", arr[j]);
}追问

能讲一下选择法吗

追答

选择法啊,就是选出最大(或者最小)的那个,放第一个,然后剩下的继续选出最大(或者最小)的那个,放第一个
就叫选择法

追问

冒泡与选择法有啥区别

追答

冒泡就好像是把一堆泡泡在水里,然后轻的就先浮上来,重的后浮上来
选择是直接选出来,不一样

本回答被提问者采纳
第2个回答  2011-06-07
#include<stdio.h>
void main()
{
void sort(int x[],int n);
int*p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{printf("%d ",*p);p++;}
}
void sort(int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])k=j;
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}
}
}
}追问

冒泡与选择法有啥区别

追答

起泡法是,一个一个的比较,如果你要求从大到小输出,那么一个一个比较时就把小的往上冒,当一圈循环结束后,冒到最上面的一个数就不再参加循环。以此类推,一至到最大的数沉到最底。
而选择法是,在你输入的数中随机选择一个数,把这个数和基它每一个数进行比较,当找到一个比它小的就把小的冒到上面当找到一个比它大的数就沉下去。然后再把上面比较出来的较小的取出来再和其它数比较。再以此类推。。。就可以达到和起泡法一样的功能。。
希望能够看懂,也希望采纳。

第3个回答  2011-06-07
不知道楼主是否说的是c语言的冒泡排序发呢?追问

是的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网