選擇排序:
固定一個(gè)元素的值,然后依次和后面每一個(gè)元素進(jìn)行比較,若當(dāng)前固定元素的值大于后面比較元素的值就進(jìn)行交換,直到
所有元素都比較完成之后,固定的第一個(gè)元素會(huì)得到所有元素最小的,在固定面一個(gè)值依次比較直到所有元素比較完成結(jié)束
例如: 6,4,9,1,3 --> 升序
1,6,9,4,3 --> 一輪排序
1,3,9,6,4 --> 二輪排序
1,3,4,9,6 -->三輪排序
1,3,4,6,9 --> 四輪排序
1,3,4,6,9 --> 五輪排序
public class XuanZheSortArray {
public static void main(String[] args) {
//創(chuàng)建數(shù)組
int[] arr = new int[10];
//向數(shù)組中隨機(jī)存儲(chǔ)0-100之間的值
for(int i = 0; i<arr.length;i++) {
arr[i] = (int)(Math.random()*100);
}
//打印沒(méi)有排序之前數(shù)組值
System.out.println(Arrays.toString(arr));
//先確定循環(huán)的次數(shù),有多少個(gè)元素就執(zhí)行多次
for(int i = 0;i<arr.length;i++) {
//循環(huán)的次數(shù)即比較次數(shù)
//j的初始變量值是i+1 即i的下位,因?yàn)閕是固定比較值
for(int j = i+1;j<arr.length;j++) {
//具體數(shù)據(jù)的比較
//i值就是一個(gè)固定的元素值
if(arr[i] > arr[j]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
System.out.print("第"+(i+1)+"次排序的結(jié)果:\t");
for(int m = 0;m<arr.length;m++) {
System.out.print(arr[m]+"\t");
}
System.out.println();
}
}
}