分析:
每次循環(huán)從數(shù)組中選一個(gè)最大的數(shù)。
第一次從 0 到 len-1洼怔, 將最大的數(shù)和len-1進(jìn)行交換位置
第二次從 0 到 len-2署惯, 將最大的數(shù)和len-2進(jìn)行交換位置
...
倒數(shù)第二次從 0 到 1, 將最大的數(shù)和1進(jìn)行交換位置
最后一次 0
JAVA代碼實(shí)現(xiàn):
// "static void main" must be defined in a public class.
public class Main {
public static void main(String[] args) {
int[] arr = new int[100];
for(int i=0;i<100;i++) {
arr[i] = (int) (Math.random() * 100);
}
sort(arr);
for(int i=0;i<100;i++){
System.out.println(arr[i]);
}
}
public static void sort(int[] arr) {
int len = arr.length;
for(int i=0;i<len;i++) {
int max = arr[0]; //記住镣隶,這里每次是從0開始比較极谊,不是i
int maxIndex = 0;
for(int j=0;j<len-i;j++) {
if(arr[j] > max) {
maxIndex = j;
max = arr[j];
}
}
arr[maxIndex] = arr[len - 1 - i];
arr[len - 1 - i] = max;
}
}
}