一、SelectionSort核心思想
核心思想:既然为“选择”排序就是每一次都要找出数组元素当中的最小的元素,通过交换,放到最靠前的位置,之后再剩下的元素里面继续找最小的,放到最靠前的位置。(这种排序方式和人的正常思维很类似,每次都找出最小的放在最前面)
排序过程:
第一次:
第二次:
第三次:
中间步骤相同….
到最后一个元素8就可以不用动了。
二、代码实现(Java语言)
package algorithm.sort;
public class SelectionSort {
public static void selectionSort(int []arr, int n){
for(int i = 0; i < n; i++) {
//寻找[i, n)区间里的最小值
int minIndex = i;
for (int j = i + 1; j < n; j++){
if(arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
public static void main(String[] args) {
int [] arr = {8, 6, 2, 3, 1, 5, 7, 4};
selectionSort(arr, arr.length);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}