美文网首页
js排序算法

js排序算法

作者: 丶Pal | 来源:发表于2018-11-16 15:50 被阅读0次

冒泡排序

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

冒泡排序就是用数组中第一个值和所有值进行比较,选出最大的值放到数组最后。下一次遍历的时候就不需遍历最后一个值,以此类推。

选择排序

function sort(arr) {
    let minIndex;
    for(let i = 0;i<arr.length - 1;i++){
        minIndex = i;
        for(j = i + 1;j<arr.length;j++){
            if(arr[j] < arr[minIndex]){
                minIndex = j;
            }
        }
        [arr[i],arr[minIndex]] = [arr[minIndex],arr[i]];
    }
    return arr;
}

选择排序就是刚开始排序的时候初始化数组第一位是最小值的下标,然后将第一位和其余所有值进行比较,如假定最小值大于比较值时,将较小值下标赋值给minIndex,最后进行互换。

插入排序

function sort(arr) {
    for(let i = 1;i<arr.length;i++){
        let compareVal = arr[i];
        let j = i - 1;
        while (arr[j] > compareVal) {
            arr[j + 1] = arr[j];
            j--;
        }
        arr[j + 1] = compareVal;
    }
    return arr;
}

插入排序就是假定数组中第一个值是最小值,然后取第二个值与之相比较,以此类推。

快速排序

let arr = [1,3,5,7,9,2,4,6,8,10];
const quickSort = function (arr) {
    if(arr.length <= 1){
        return arr;
    }
    let leftArr = [],rightArr = [];
    let middleIndex = Math.floor(arr.length / 2);
    let middleVal = arr.splice(middleIndex,1)[0];
    for(let i = 0;i<arr.length;i++){
        if(middleVal > arr[i]){
            leftArr.push(arr[i]);
        }else{
            rightArr.push(arr[i]);
        }
    }
    return quickSort(leftArr).concat([middleVal],quickSort(rightArr))
};

相关文章

  • 排序算法

    JS里排序算法的写法:

  • JS中可能用得到的全部的排序算法

    本篇有7k+字, 系统梳理了js中排序算法相关的知识, 希望您能喜欢. 原文:JS中可能用得到的全部的排序算法 导...

  • 数组的排序算法的实现

    数组的排序算法 关于排序算法请看这篇文章。本文尝试使用js来实现一部分简单的算法。 选择排序 思路:若要从小到大排...

  • JS算法——排序算法

    一:冒泡排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两...

  • 排序算法

    https://www.cnblogs.com/beli/p/6297741.html js十大排序算法:冒泡排序...

  • js排序算法

    冒泡排序 冒泡排序就是用数组中第一个值和所有值进行比较,选出最大的值放到数组最后。下一次遍历的时候就不需遍历最后一...

  • js 排序算法

  • JS排序算法

    冒泡排序: vararray = [{"name":"aa",index:100},{"name":"aa",in...

  • JS排序算法

    冒泡排序 1.依次比较相邻的两个数,如果第一个比第二个小,不变。如果第一个比第二个大,调换顺序。一轮下来,最后一个...

  • 排序算法-JS

    冒泡排序 基本思路: 1.依次比较相邻的两个数,如果第一个比第二个小,不变。如果第一个比第二个大,调换顺序。一轮下...

网友评论

      本文标题:js排序算法

      本文链接:https://www.haomeiwen.com/subject/uzpmfqtx.html