/*
规律总结:
1, 要进行从头到尾找出其中的最大值(及下标), 并进行交换的趟数为n-1, n 为数组长度
2, 每-趟要做的事情是: a)找最大值, b)并将该最大值跟这一趟的最后一项进行交换;
3, 每一趟要从中找最大值的元素个数都比前一趟少 1, 其中第一趟有n 个。
*/
var arr = [18, 22, 12, 15, 23, 9];
console.log(arr); // => [18, 22, 12, 15, 23, 9]
for (var i = 0; i < arr.length - 1; i++) {
var max = arr[0];
var maxIndex = 0;
for (var j = 0; j < arr.length - i; j++) {
// if (arr[j] > max) {
// max = arr[j];
// maxIndex = j;
// }
// 简写:
arr[j] > max ? ((max = arr[j]), (maxIndex = j)) : ((max = max), (maxIndex = maxIndex));
}
[arr[maxIndex], arr[arr.length - 1 - i]] = [arr[arr.length - 1 - i], arr[maxIndex]];
}
console.log(arr); // => [9, 12, 15, 18, 22, 23]