1、选择排序理念
1、想象数组处理过程中分为两部分有序和无序,
2、找出无序部分中的最小值和有序部分的尾部下一个位置交换值,使得有序部分增加一个值,无序部分减少一个值。直到无序部分消失停止。
时间复杂度O(n*n)
2、java代码
public static int[] selectionSort(int[] arr){
for(int i=0; i<arr.length-1; i++){
// 标记最小数下标
int minIndex = i;
for(int j =i+1; j<arr.length; j++){
if(arr[j] < arr[minIndex]){
minIndex = j;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
return arr;
}
python3代码
def selectionSort(arr):
for i in range(len(arr)-1):
min_index = i
j = i+1
for j in range(i, len(arr)):
if arr[min_index] > arr[j]:
min_index = j
temp = arr[min_index]
arr[min_index] = arr[i]
arr[i] = temp
return arr