zoukankan      html  css  js  c++  java
  • 四种js数组排序

    ``

    var a = [1, 3, 6, 3, 23, 76, 1, 34, 222, 6, 456, 221];
    // 冒泡排序 通过双循环2 2 比较更换位置进行排序
    function pop(arr) {
      const arr1 = arr;
    
      for (let i = 0; i < arr1.length; i++) {
        for (let j = 0; j < i; j++) {
          if (arr1[i] < arr1[j]) {
            const temp = arr1[j];
            arr[j] = arr1[i];
            arr[i] = temp;
          }
        }
      }
      return arr1;
    }
    // 快速排序
    /**
     * 选确定数组长度
     * 取中间基数作为参考目标,设置左右2边空数组
     * 循环原数组和基数进行比较
     * 递归并合并左右2边数组
     * **/
    
    function quickSort(arr) {
      if (arr.length <= 1) {
        return arr;
      }
    
      const j = Math.floor(arr.length / 2);
      const infoNum = arr.splice(j, 1)[0];
      const left = [];
      const right = [];
    
      arr.map((item) => {
        if (item > infoNum) {
          right.push(item);
        } else {
          left.push(item);
        }
      });
    
      return quickSort(left).concat(infoNum, quickSort(right));
    }
    // 插入排序
    /**
     * 设置一个变量记录状态,一个空数组负责存排序后的数据
     * 未排序和排序的数组进行循环比较,把旧数组中的每一项都和新数组进行比较,
     * 如果比其中某一项小就插入当前位置
     * 如果没有就插入最后的位置
     * */
    function insertSort(arr) {
      const temp = [];
    
      for (let i = 0; i < arr.length; i++) {
        let flag = false;
        for (let j = 0; j < temp.length; j++) {
          if (arr[i] < temp[j]) {
            temp.splice(j, 0, arr[i]);
            flag = true;
            break;
          }
        }
        if (!flag) {
          temp.push(arr[i]);
        }
      }
      return temp;
    }
    
    // 选择排序
    /**
     * 设置一个变量临时存储数据,一个变量记录最小数据位置
     * 循环 用第二个数据和第一个数据进行比较 如果小于等于这个元素就把位置记录
     * 变量 temp 赋值成当前循环的元素 当前元素赋值成最小元素 最小元素赋值成当前元素
     * 这样交换位置
    */
    function selectSort(arr) {
      let temp;
      let minIndex;
    
      for (let i = 0; i < arr.length - 1; i++) {
        minIndex = i;
        for (let j = i + 1; j < arr.length; j++) {
          if (arr[j] <= arr[minIndex]) {
            minIndex = j;
          }
        }
        temp = arr[i]
        arr[i] = arr[minIndex]
        arr[minIndex] = temp
      }
      return arr
    }
    

      

  • 相关阅读:
    screenonclick类
    凶残
    接近毁灭的状态
    在python3中,items()进行了优化
    python中两个字典(dict)合并
    Python代码中os.path常见属性的相关介绍 from 路人甲
    什么是pyc文件
    wget
    Python的字典的items(), keys(), values()
    利用securecrt在linux与windows之间传输文件
  • 原文地址:https://www.cnblogs.com/feifan1/p/14750463.html
Copyright © 2011-2022 走看看