排序算法的思想就是把数组分成两个部分,前部的数组是一个有序的,并且保证是当前最小的集合。所以每次就是遍历剩下的元素,取出其中最小的,然后插入之前的有序集合。
表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法了吧。
原地+不稳定的特点。思维上比较简单。
public void chooseSort(int[] a ){ int length = a.length; int index; int temp; for (int i = 0; i < length - 1; i++) { index = i; for (int j = i+1; j < length; j++) { if (a[j]<a[index]){ index = j; } } temp = a[i]; a[i] = a[index]; a[index] = temp; } }