选择排序分为直接选择排序和堆排序两种。
直接选择排序
如图,选择排序原理实际上就是每次找出极值(最大值、最小值)完成排序。
function selectionSort(arr) {
var len = arr.length;
var minIndex, temp;
for (var i = 0; i < len - 1; i++) {
minIndex = i;
for (var j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) { // 寻找最小的数
minIndex = j; // 将最小数的索引保存
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
函数说明:首先遍历 Arrary,判断当前元素是否为极值(找出极值索引),然后两者交换位置,遍历完成数组即可得到顺序的新数组。