简单选择排序属于选择类排序方法,它的改进是堆排序。
基本思想 |
简单选择排序的基本思想非常简单(假设从小到大排序):第一趟,从 n 个元素中找出关键字最小的元素与第一个元素交换;第二趟,在从第二个元素开始的 n-1 个元素中再选出关键字最小的元素与第二个元素交换;如此,第 k 趟,则从第 k 个元素开始的 n-k+1 个元素中选出关键字最小的元素与第 k 个元素交换,直到整个序列按关键字有序。
排序过程 |
代码实现 |
//假设从小到大排序
public static void insertSort(Integer[] arr){
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
int position = i;
for (int j = i-1; j >= 0 ; j--) {
if(temp < arr[j]){
//记录后移
arr[j+1] = arr[j];
position = j;
}else {
break;
}
}
//插入到正确位置
arr[position]=temp;
}
}
时空复杂度 |