永发信息网

c语言数组排序中的选择法是什么意思啊?

答案:3  悬赏:60  手机版
解决时间 2021-03-26 22:13
  • 提问者网友:川水往事
  • 2021-03-26 10:59
c语言数组排序中的选择法是什么意思啊?
最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-03-26 11:56
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中 选出 最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。所以这种排序的方法叫选择法排序。

C语言参考实例:
#include 
void main()
{
    int a[]={1,3,4,2,0} ;
    int i,j,n=5;
    for( i=0;i for( j=i+1;j if ( a[i] < a[j] ) //大的前移
{
int t=a[i];
a[i]=a[j];
a[j]=t ;
}

for( i=0;i printf("%d ", a[i] );
}
全部回答
  • 1楼网友:煞尾
  • 2021-03-26 13:39
选择排序,从第一个数组元素开始,把第一个元素分别与后面元素比较,谁比第一个元素小,就和第一个元素交换位置,然后再以这个交换过的元素跟后面的比,直到最后一个元素,比完之后呢,现在数组的第一个元素肯定是全数组最小的,然后再从第二个元素开始以之前的方法跟后面的比,完成后第二个元素就是全数组第二小的,一直这样比到最后,就是从小到大的选择排序法,如果没听懂,直接百度搜“选择排序”,应该会有更具体的答案
  • 2楼网友:神鬼未生
  • 2021-03-26 12:16
我上代码吧,这样便于理解:
选择排序,由小到大

#include
void main()
{
int s[]={5,10,3,7,2,8,9};
int i,j,n;
for(i=0;i<=6;i++) //控制循环次数,第一次循环过后s[0]肯定是最小的元素值了那么第二次就是s[1]这是最小的元素值了,依此类推
for(j=i+1;j<=6;j++)
if(s[i]>s[j]) //交换,使每一次都拿s[i]和后面的比较,若s[i] {
n=s[i];
s[i]=s[j];
s[j]=n;
}
for(i=0;i<=6;i++)
printf("%d ",s[i]);
putchar('\n');
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯