每次确认一个位置的元素,需确认arr.length-1次。
时间复杂度:平均O(n^2) 最坏O(n^2)
空间复杂度:O(1)
java
public static void SelectSort(int[] arr){
for(int i = 0; i < arr.length-1; i++){ //第i趟排序,用于确定第i个位置的元素
int k = i;
for(int j = k+1; j < arr.length; j++){ //选定数组剩下元素最小的元素
if(arr[j] < arr[k]){ //交换元素(第i个位置的元素确定)
int temp = arr[k];
arr[k] = arr[j];
arr[j] = temp;
}
}
}
}
go
func selectionSort(array []int) {
for i := 0; i < len(array); i++ {
minIndex := i
for j := i + 1; j < len(array); j++ {
if array[j] < array[minIndex] {
minIndex = j
}
}
array[i], array[minIndex] = array[minIndex], array[i]
}
}