选择排序算法的思想:
每一趟遍历,都选择出其中最小(大)的元素,放置到正确的位置;
Java代码实现
/**
* 选择排序算法
* @param a a为要排序的数组,实现了Comparable接口
*/
public static void sort(Comparable[] a){
int N = a.length;
for (int i = 0; i < N; i++) {
int min = i;
for (int j = i+1; j < N ; j++) {
if(Example.less(a[j], a[min])) min = j; //如果a[j] < a[min] ,则记住其位置;最后选择出此趟的最小值;
}
Example.exchange(a, i, min); //交换位置
}
}
时间复杂度
O(n^2)
空间复杂度
O(n)