上一篇:
前端必会算法——冒泡排序
选择排序
数组的排序的核心部分:比较,交换,排序算法
var arr = [41, 1, 5, 6, 8];
//交换
function exchange(arr, a, b) {
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
// 比较
function compare(a, b) {
if (a < b) return true;
else return false;
}
// 排序--选择排序的内层循环,每一圈选出一个最大的,然后放到最后面
function sort(arr) {
for (var i = 1; i < arr.length; i++) {
var maxIndex = 0; //默认为0
for (var j = 0; j < arr.length - i; j++) {
if (compare(arr[maxIndex], arr[j])) {
maxIndex = j;
}
}
//如果小于数组的最后一个数的下标就进行交换
exchange(arr, maxIndex, arr.length - i);
}
return arr;
}
console.log(sort(arr));
运行结果:
任何一种排序算法都没有优劣之分,只有是否适合的场景。
下一篇:
前端必会算法——简单快速排序