實現一個方法,該方法的參數是int[],該方法可以對數組進行排序,例如使用【選擇排序】,該方法不需要返回值。
2 1 4 9 8 5 3
規則:每一輪在待排序的區域中比較找到一個最小值後,把這個最小值放到已經排好順序的區域的末尾,剩下的部分成一個新的待排序部分,重複上面的步驟直到排序結束。
2 1 4 9 8 5 3
第一輪從待排序區中找到一個最小值,然後和第一個位置的數字交互位置
1 2 4 9 8 5 3
第二輪從新的待排序區中找到一個最小值,然後和第二個位置的數字交互位置
1 2 4 9 8 5 3
第三輪從新的待排序區中找到一個最小值,然後和第三個位置的數字交互位置
1 2 3 9 8 5 4
第四輪從新的待排序區中找到一個最小值,然後和第四個位置的數字交互位置
1 2 3 4 8 5 9
第五輪從新的待排序區中找到一個最小值,然後和第五個位置的數字交互位置
1 2 3 4 5 8 9
第六輪從新的待排序區中找到一個最小值,然後和第六個位置的數字交互位置
1 2 3 4 5 8 9
注意,操作的核心目標:
1.每輪找到的最小值應該存放的下標位置是什麼
2.每輪找到的最小值現在的下標位置是什麼
3.找到之後,讓這倆個位置的值進行交互就可以了
package com.briup.day1;
import java.util.Arrays;
/**
*
* @author Xuan
* */
public class Selection {
//1 2 5 4
public static void main(String[] args) {
int [] a ={1,15,2,3,5,9,8};
for(int i=0;i<a.length-1;i++) {
int min = i;//剛進入循環時把數組第一位默認爲最小值下標
int temp;
for(int j=min;j<a.length;j++) {
//從最小值下標開始依次比較取到最小值
//並記錄最小值的下標
if(a[j]<a[min]) {
min=j;
}
}
if(i!=min) { //進行交換最小值下標後,如果彼此下標不相等就交換數字
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
System.out.println(Arrays.toString(a));
}
}