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);
}
相关推荐
A黄俊辉A17 分钟前
vue css中 :global的使用
前端·javascript·vue.js
小码哥_常31 分钟前
被EdgeToEdge适配折磨疯了,谁懂!
前端
小码哥_常43 分钟前
从Groovy到KTS:Android Gradle脚本的华丽转身
前端
灵感__idea1 小时前
Hello 算法:复杂问题的应对策略
前端·javascript·算法
chushiyunen1 小时前
python中的内置属性 todo
开发语言·javascript·python
麦麦鸡腿堡1 小时前
JavaWeb_请求参数,设置响应数据,分层解耦
java·开发语言·前端
soso19682 小时前
JavaScript性能调优实战案例
javascript
Dxy12393102163 小时前
CSS常用样式详解:从基础到进阶的全面指南
前端·css
IT_陈寒3 小时前
SpringBoot自动配置揭秘:5个让开发效率翻倍的隐藏技巧
前端·人工智能·后端
Moment3 小时前
前端工程化 + AI 赋能,从需求到运维一条龙怎么搭 ❓❓❓
前端·javascript·面试