排序的算法有不少,先来说说选择排序。
选择排序,看这个名字就知道这种排序方法一定与选择有关,当有一个数组存在时,并且这个数组就是需要我们进行排序的数组,例如定义了一个整形数组array[10] = {2,1,4,8,7,14,23,3,25,23};这里谈论一下选择排序如何对该数组进行升序排序:
第一轮遍历该数组的时候找到里面最小的一个元素下标我们假设为min_index,然后将找到的这个min_index放到数组的第一个位置,然后进行第二轮遍历,寻找第二小的元素下标赋值给min_index,然后放在数组的第二个位置,这样循环往复,直到最后一次数组已经排序完毕,就不用再循环了。
根据上面的分析写出代码如下:
下面进行一些简单的分析:
1、这种排序的方法也可以叫做比较排序,因为是通过数之间的比较从而进行排序的。
2、选择排序是一种不稳定的排序,比如需要排序的一组数种有两个相同的数,那么选择排序就会交换它们的位置,所以是不稳定的排序方法。
3、选择排序的时间复杂度为O(n^2);比较次数永远是n(n-1)/2次。