您现在的位置是:网站首页>>前端技术>>html+css+js

js 实现数组排序

发布时间:2018-09-21 14:26:55作者:wangjian浏览量:647点赞量:0

    一:快速排序

    在数组中拿出中间一项,跟剩下数组的每一项进行比较,比中间项小放入左边的数组,比中间项大放入右边的数组。进行一轮比较后,递归把左右的数组内部进行相同方法比较,最后把首次比较的数组拼接起来。

    let arr = [3,0, 6, 5,2, 1, 9];
    function mySort(arr) {
     if(arr.length<=1){//数组只有一项不用进行比较,返回当前的数组
       return arr;
     }
      let ind = Math.floor(arr.length / 2);//取中间的索引值
     let mid = arr[ind];//数组中间那项
     arr.splice(ind, 1);//拿出中间项后的数组
     let left = [];
     let right = [];
     arr.map((item) => {
        if (item > mid) {
          right.push(item)
        } else {
          left.push(item)
        }
     })
     return mySort(left).concat(mid, mySort(right))
     //左右的数组内用相同方法进行排序,最好把这几项拼接在一起
    }
    console.log(mySort(arr))

    二:冒泡排序

    比较相邻项的值,如果前者比后者大,交换顺序;

    进行一轮比较后,最后一个值为最大的值;

    进行下一轮比较,比上次少比较一项;

    以此类推,比较剩下最后一项的时候,比较结束;

    let arr = [3, 0, 6, 5, 2, 1, 9];
    function mySort(arr) {
     for (var i = 0; i < arr.length - 1; i++) {
       for (var k = 0; k < arr.length - i - 1; k++) {
         var temp = null;
         if (arr[k] > arr[k + 1]) {
           temp = arr[k + 1];
           arr[k + 1] = arr[k];
           arr[k] = temp;
         }
       }
     }
     return arr;
    }
    console.log(mySort(arr))


上一篇:了解nginx

下一篇:nginx实现反向代理百度

0 +1