排序算法之——选择排序
选择排序,工作原理很简单,顾名思义,就是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
选择排序大概过程如下:
比如数组:3,4,2,7,5,1,9,0
首先先定义一个指针:int minIndex = 0;指向第一个元素,然后遍历一下数组,如果发现有比minIndex所指元素还小的元素,就交换下标
因为3>2,所以数组变为:2,4,3;
接着由于2>1,所以数组又变为:1,4,3,7,5,2;
接着由于1>0,所以数组又变为:0,4,3,7,5,2,9,1;
这个时候旧确定了一个最小的位置0,然后不断的循环上述那个过程,只不过要从1这个位置开始,0这个位置就不用比较了。
所以其时间复杂度也是O(N^2)
具体程序实现如下: