选择排序——C语言

选择排序

 

1、算法描述

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕(放到起始位置还是末尾可以自行选择)

 

2、代码实现

 1 int num[5] = {7, 3, 5, 8, 1};
 2     int i, j;
 3     int minIndex;    //待排序列中最小数的下标
 4     int temp;
 5     int length = sizeof(num) / sizeof(num[0]);
 6 
 7     /* 选择排序-升序*/
 8     for (i = 0; i < length - 1; i++)
 9     {
10         minIndex = i;
11         for (j = i + 1; j < length; j++)
12         {
13             if (num[j] < num[minIndex])
14             {
15                 minIndex = j;
16             }
17         }
18         temp = num[i];
19         num[i] = num[minIndex];
20         num[minIndex] = temp;
21     }

 

3、排序过程(gif)

 

四、关于算法性能

与冒泡排序相比选择排序的交换次数较少,由于交换所需CPU时间比比较所需的CPU时间多,n值较小时,选择排序比冒泡排序快

posted @ 2019-07-31 16:01  Luv3  阅读(1185)  评论(0编辑  收藏  举报