澳门至尊网站-首页

您的位置:澳门至尊网站 > 免费资源 > 选择法排序,选择排序

选择法排序,选择排序

2019-10-20 09:27

从小到大的采取排序 是从八个数组中逐大器晚成选出 最小数值 输出,第二小的数值输出,第三小的数值输出... ...直到最终三个数组中最后三个数遍历实现,则 整个排序输出达成。

 

慎选法排序指每一遍选取所要排序的数组中的最大值(由小到大排序则选拔最小值)的数组成分,将以此数组成分的值与最前边未有进展排序的数组成分的值调换。以数字9、6、15、4、2为例,采用选拔法落实数字按从小到大进展排序,每回调换的相继如图8.17所示。

 图片 1

图8.17  选取法排序暗暗表示图

从图8.17可以窥见,在首先次排序进程少校第贰个数字和纤维的数字进行了地点交换;而第贰次排序进程中,将第三个数字和剩下的数字中幽微的数字举办了位置交换;以此类推,每趟都将下一个数字和剩余的数字中渺小的数字实行岗位交换,直到将百废具兴组数字按从小到大排序。

下边通超过实际例来看一下什么通进程序选拔接纳法得以落成数组成分从小到大的排序。 

 int[] sort = new int[13] { 1, 4, 89, 34, 56, 40, 59, 60, 39, 1, 40, 90, 48 };  // 输入一个数组
            for (int i = 0; i < sort.Length; i++)
            {
                int min = sort[i];  // 初始化(以第i个数为初始值)最小值
                for (int j = i+1; j < sort.Length; j++)   // 从第i+1个开始遍历数组,与第i个数对比,找到最小值
                {
                    if (sort[j] < min)
                    {
                        int temp = sort[j];
                        sort[j] = min;
                        min = temp;
                    }     // 找到最小值赋值给min
                }
                Console.Write(min + " ");  // 输出min 值
            }
实例 利用采用排序将学员成绩举行排序

在本实例中,申明了三个整型数组和五个整型变量,个中整型数组用于存款和储蓄顾客输入的数字,而整型变量用于存款和储蓄数值最小的数组成分的数值和该因素的职位,然后通过双层循环实行选取法排序,最终将排好序的数组进行输出。具体代码如下:

01   #include<stdio.h>/*包含头文件*/

02  int main()                   /*主函数main*/

03  {

04           int i,j;                             /*定义变量*/

05           int a[10];

06           int iTemp;

07           int iPos;

08           printf("为数组元素赋值:n");

09           /*从键盘为数组元素赋值(成绩)*/

10           for(i=0;i<10;i++)

11           {

12                  printf("a[%d]=",i);

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

14           }

15           /*从高到低排序*/

16           for(i=0;i<9;i++)                                 /*设置外层循环为下标0~8的元素*/

17           {

18                  iTemp = a[i];                       /*设置当前元素为最大值*/

19                  iPos = i;                              /*记录元素位置*/

20                  for(j=i+1;j<10;j++)                     /*内层循环i+1到9*/

21                  {

22                         if(a[j]>iTemp)                      /*如果当前元素比最高值还高*/

23                         {

24                                iTemp = a[j];          /*重新设置最高值*/

25                                iPos = j;                /*记录元素位置*/

26                         }

27                  }

28                  /*交换两个元素值*/

29                  a[iPos] = a[i];

30                  a[i] = iTemp;

31           }

32   

33           /*输出数组*/

34           for(i=0;i<10;i++)

35           {

36                  printf("%dt",a[i]);                /*输出制表位*/

37                  if(i == 4)                             /*如果是第5个元素*/

38                         printf("n");            /*输出换行*/

39           }

40   

41           return 0;                                     /*程序结束*/

42  }

 

运作程序,显示结果如图8.18所示。

 图片 2

图8.18  采取排序运转图

从该实例代码和平运动转结果能够见见:

(1)声美赞臣(Meadjohnson)(Karicare)个整型数组a,并由此键盘为数组成分赋值。

(2)设置多少个嵌套循环,第生气勃勃层循环为前9个数组元素,并在历次循环时将对应该前次数的数组成分设置为最小值(要是当前是第3次巡回,那么将数组中第三个要素(也等于下标为2的因素)设置为当前的最小值);在其次层循环中,循环相比较该因素之后的顺序数组元素,并将每一回相比较结实中相当的小的数设置为最小值,在其次层循环截止时,将最小值与开端时设置为最小值的数组成分举办沟通。当全数循环都形成之后,就将数组成分依照从小到大的逐龙精虎猛重新排列了。

(3)循环输出数组中的成分,并在输出5个因素之后进行换行,在下风起云涌行输出前面包车型地铁5个因素。

 

正文章摘要自前几天科学和技术出版的《零基础学C语言》,转发请注脚出处!!!

  

本文由澳门至尊网站发布于免费资源,转载请注明出处:选择法排序,选择排序

关键词:

  • 上一篇:没有了
  • 下一篇:没有了