美文网首页
数组-排序

数组-排序

作者: 有灵魂 | 来源:发表于2019-04-09 19:33 被阅读0次

1、推荐使用数组方法sort()最快,最省事

  let arr = [8, 2, 5, 3, 7]
    let arr1 = arr.sort((a, b) => {
      return a - b
    })
    console.log(arr1) // [2, 3, 5, 7, 8]

2、冒泡排序 相邻两个相比较,更换位置

    let arr = [8, 5, 3, 2, 7]
    function arrSort(arr) {
      for (let i = 0;i < arr.length; i++) {
        for (let j = 0;j < arr.length - i; j++) {
          if (arr[j] > arr[j+1]) {
            let temp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = temp
            console.log(arr, j, 'arr');
          }
        }
      }
      return arr
    }
    console.log(arrSort(arr)); // [2, 3, 5, 7, 8]

3、选择排序,选一个最小的,遍历元素与他比较大小,更换位置

    let arr = [8, 5, 3, 2, 7]
    function arrSort(arr) {
      for (let i = 0;i < arr.length;i++) {
        var min = arr[i]
        for (let j = i+1;j < arr.length;j++) {
          if (arr[i] > arr[j]) {
            let temp = arr[i]
            arr[i] = arr[j]
            arr[j] = temp
            console.log(arr, j, 'arr');
          }
        }
      }
      return arr
    }
    console.log(arrSort(arr));

4、快速排序,数组分为两部分,比中间值小的,比中间值大的;然后两部分继续二分排序,直到只有一个元素

    let arr = [8, 5, 3, 2, 7]
    function arrSort(arr) {
      if (arr.length <= 1) return arr
      let index = Math.floor(arr.length / 2)
      let temp = arr.splice(index, 1)
      let left = []
      let right = []
      for (let i = 0;i < arr.length;i++) {
        if (arr[i] < temp) {
          left.push(arr[i])
        } else {
          right.push(arr[i])
        }
      }
      return arrSort(left).concat(temp, arrSort(right))
    }
    console.log(arrSort(arr));

5、插入排序

相关文章

  • iOS 各种排序

    数组排序 数组中字典排序 数组中字典按照某个value排序 排序方法

  • Java 数组的排序、逆序

    数组的排序、逆序测试数据 数组选择排序 数组冒泡排序 数组逆序

  • java 数组和list排序

    数组排序 其中有数组排序和数组对象排序 数组一些数字排序则直接用Arrays.sort()加数组就可以。数组对象则...

  • 数组

    数组的遍历 数组是值类型 数组的排序 冒泡排序 多维数组

  • 2018-01-14

    php数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据...

  • PHP排序算法

    排序算法 冒泡排序(数组排序) 快速排序(数组排序) 参考 http://www.cnblogs.com/enia...

  • 算法记录

    快速排序 基本算法: 归并排序讲数组分为两个子数组分别排序,并将有序的子数组归并使得整个数组排序; 快速排序通过一...

  • 选择排序

    选择排序 调用选择排序 生成数组 打印输出排序数组

  • 按照数组中的字符串顺序给另一个数组排序

    数组1 数组2: 数组1按照数组2的顺序排序 sortedUserDicts就是排序后的数组

  • 排序问题

    数组排序 数组排序最简单了,直接Arrays.sort(a); a是待排序的数组 根据对象中的成员变量来排序 这个...

网友评论

      本文标题:数组-排序

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