选择排序
选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。
var arr = [4, 1, 6, 9, 3, 2, 8, 7];
function compare(a, b) {
if (a < b) return true;
else return false;
}
function exchange(arr, a, b) {
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
//选择排序,内层循环,每一圈选出一个最大的,然后放在后面
function sort(arr) {
for (var i = 0; i < arr.length; i++) {
var maxIndex = 0;
for (var j = 0; j < arr.length - i; j++) {
if (compare(arr[maxIndex], arr[j])) {
maxIndex = j;
}
}
exchange(arr, maxIndex, arr.length - 1 - i);
}
}
//任何一种排序算法,都没有优劣之分,只有是否适合的场景。
sort(arr);
console.log(arr);