js的几种排序

冒泡排序:

javascript 复制代码
function bubbleSort(arr) {
    var len = arr.length;
    for (var i = 0; i < len; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {        //相邻元素两两对比
                var temp = arr[j+1];        //元素交换
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr;
}

const arr = [4,8,0,1,43,53,22,11,0];
console.log(bubbleSort(arr));

选择排序:

javascript 复制代码
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;
}

插入排序:

javascript 复制代码
function insertionSort(arr) {
    var len = arr.length;
    var preIndex, current;
    for (var i = 1; i < len; i++) {
        preIndex = i - 1;
        current = arr[i];
        while(preIndex >= 0 && arr[preIndex] > current) {
            arr[preIndex+1] = arr[preIndex];
            preIndex--;
        }
        arr[preIndex+1] = current;
    }
    return arr;
}

斐波那契数列:

javascript 复制代码
function fibonacci (n) {
 if ( n <= 1 ) {return 1};
 return fibonacci(n - 1) + fibonacci(n - 2);
}
相关推荐
斯普信专业组13 分钟前
ceph数据迁移数据迁移与bacula配置调整优化实战
前端·ceph·github
好_快18 分钟前
Lodash源码阅读-baseMatches
前端·javascript·源码阅读
好_快20 分钟前
Lodash源码阅读-baseHasIn
前端·javascript·源码阅读
好_快21 分钟前
Lodash源码阅读-baseIsEqual
前端·javascript·源码阅读
好_快25 分钟前
Lodash源码阅读-getMatchData
前端·javascript·源码阅读
吴永琦(桂林电子科技大学)1 小时前
HTML5
前端·html·html5
爱因斯坦乐1 小时前
【HTML】纯前端网页小游戏-戳破彩泡
前端·javascript·html
恋猫de小郭1 小时前
注意,暂时不要升级 MacOS ,Flutter/RN 等构建 ipa 可能会因 「ITMS-90048」This bundle is invalid 被拒绝
android·前端·flutter
还是鼠鼠2 小时前
Node.js自定义中间件
javascript·vscode·中间件·node.js·json·express
大莲芒5 小时前
react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析--react17
前端·react.js·前端框架