js排序算法

冒泡排序

冒泡排序就是循环队列相邻两个元素两两排序

function bubblesort(arr) {
            let len = arr.length;
            for (let i = 0; i < len; i++) {
                for (let j = 0; j < len - 1 - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        let temp = arr[j + 1];
                        arr[j + 1] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            return arr
        }

选择排序

选择排序循环队列,当前队列依次和后续队列循环进行比较,交换位置

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;
}

插入排序

选择排序循环队列,当前队列依次和前面队列循环进行比较,插入小的数据前面

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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JS的排序算法 引子 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements JavaScript. ...
    匆匆岁月阅读 479评论 1 5
  • 排序算法时间复杂度 冒泡排序 如果有 n 个数进行排序,需要循环 n-1 次 每一次循环,从第一位开始进行相邻两个...
    RQrry阅读 206评论 0 0
  • 十大经典算法排序总结对比一张图概括,主流排序算法概览: 名词解释:n: 数据规模k:“桶”的个数In-place:...
    飞菲fly阅读 664评论 0 2
  • 对计算机存储的数据执行的最常见的操作就是排序和检索。接下来我们要讲解的算法都是依赖数组来存储数据的,也就是js形式...
    海娩阅读 566评论 0 4
  • 什么是算法 高德纳在《计算机程序设计艺术》里对算法的归纳:书籍推荐:《数据结构与算法分析》 输入:一个算法必须有零...
    Tuuu阅读 414评论 0 0