开发者社区> 问答> 正文

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

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

展开
收起
知与谁同 2018-07-18 17:11:05 1992 0
3 条回答
写回答
取消 提交回答
  • 这个时候,玄酱是不是应该说点什么...
    选择排序,从第一个数组元素开始,把第一个元素分别与后面元素比较,谁比第一个元素小,就和第一个元素交换位置,然后再以这个交换过的元素跟后面的比,直到最后一个元素,比完之后呢,现在数组的第一个元素肯定是全数组最小的,然后再从第二个元素开始以之前的方法跟后面的比,完成后第二个元素就是全数组第二小的,一直这样比到最后,就是从小到大的选择排序法,如果没听懂,直接百度搜“选择排序”,应该会有更具体的答案
    2019-07-17 22:49:49
    赞同 展开评论 打赏
  • Nothing for nothing.
    我上代码吧,这样便于理解:
    选择排序,由小到大

    #include<stdio.h>
    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]<s[j]则不交换
    {
    n=s[i];
    s[i]=s[j];
    s[j]=n;
    }
    for(i=0;i<=6;i++)
    printf("%d ",s[i]);
    putchar('\n');
    }
    2019-07-17 22:49:48
    赞同 展开评论 打赏
  • 云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!

    选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中 选出 最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。所以这种排序的方法叫选择法排序。

    C语言参考实例: #include <stdio.h>
    void main()
    {
        int a[]={1,3,4,2,0} ;
        int i,j,n=5;
        for( i=0;i<n-1;i++ )
    for( j=i+1;j<n;j++ ) //每一遍都与当前a[i]比较
    if ( a[i] < a[j] ) //大的前移
    {
    int t=a[i];
    a[i]=a[j];
    a[j]=t ;
    }

    for( i=0;i<n;i++ )
    printf("%d ", a[i] );
    }

    2019-07-17 22:49:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载