简介
选择排序的原理是,从第一个数开始往后进行比较,找出最小的数和第一个位置进行交换,依次从小到大进行排序
5 | 4 | 3 | 2 | 1 | ||
第一次 | 1 | 4 | 3 | 2 | 5 | 1~n-1 |
第二次 | 1 | 2 | 3 | 4 | 5 | 2~n-1 |
第三次 | 1 | 2 | 3 | 4 | 5 | 3~n-1 |
第四次 | 1 | 2 | 3 | 4 | 5 | 4~n-1 |
代码实现
package com.huangkang;
public class SelectSort {
public static void swap(int[] arr,int i,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void selectSort(int[] arr){
if (arr==null||arr.length==1){
return;
}
for (int i = 0; i < arr.length; i++) {
int minIndex = i;
for (int j = i+1; j < arr.length; j++) {
minIndex = arr[j]<arr[minIndex]?j:minIndex;
}
swap(arr,i,minIndex);
}
}
public static void printArray(int[] arr){
for (int a:arr) {
System.out.print(a+" ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = {9,8,7,6,5,4,3,2,1};
printArray(arr);
selectSort(arr);
printArray(arr);
}
}