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);
}
相关推荐
China-quanda9 分钟前
使用 Vite 打包工具库并使用 GitHub Actions 自动化发布npm流程
前端·npm·github
da-peng-song17 分钟前
ArcGIS Desktop使用入门(三)图层右键工具——拓扑(上篇:地图拓扑)
javascript·数据库·arcgis
冷月秋风尚22 分钟前
ES6中迭代器与生成器知识浅析
前端·javascript·es6
blammmp3 小时前
Java : 图书管理系统
java·前端·python
200不是二百3 小时前
Vue-router路由
前端·javascript·vue.js
susu10830189113 小时前
前端vue中如何给reactive赋值
前端·javascript·vue.js
前端学步5 小时前
Vue 3 Composition API 实战技巧:组件间通信与SPA架构
前端·javascript·vue.js
盛夏绽放5 小时前
Vue Router 编程式导航全攻略:深入掌握 push, replace, go, back, forward,beforeEach 方法
前端·vue.js·golang
小人物.09076 小时前
关于SSR和SSG
前端
pcplayer6 小时前
WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端
前端·后端·delphi·web开发·webbroker