美文网首页
js 常用排序

js 常用排序

作者: 从小就很丑_827d | 来源:发表于2021-04-05 01:13 被阅读0次

常用排序方法(这里就不写空间复杂度和时间复杂度了。就是用的时间和占的内存)
1.冒泡排序

function bubbleSort(arr){
  let temp
  for(let i=0;i<arr.length-1;i++){
      let flag = false
    for (let j = 0; j < arr.length-1; j++) { //length-1 是因为每次最大的值位置就固定了
      if(arr[j]>arr[j+1]){
        temp= arr[j]
        arr[j]=arr[j+1]
        arr[j+1] =temp
        flag = true
      }
    }
    if(!flag){  //当flag 为false 代表内循环已经比完 最后一次外循环就没比较  直接return
      return arr
    }
  }
}

2.快速排序

function quickSort(array){ 
    if(array.length<=1) return array;
     let base_num =  array[0] //找一个基准数,你可以找第一个 也可以找中间的
     let left_arr = [] //左数组
     let right_arr = [] //右数组
     for(let i=1;i<array.length; i++){ //循环和基准数比较   小于base_num 的放left_arr 反则right_arr
       if(array[i]<base_num){
         left_arr.push(array[i])
       }else{
         right_arr.push(array[i])
       }
     }
     if(left_arr.length>1) left_arr = quickSort(left_arr); //这是递归
     if(right_arr.length>1) right_arr = quickSort(right_arr);
     return left_arr.concat(base_num,right_arr) //直到 左右数组都只有一个的时候 将其连接
}

3.归并排序

function merge(leftArr, rightArr){  
    var result = [];  
    while (leftArr.length > 0 && rightArr.length > 0){  
      if (leftArr[0] < rightArr[0])  
        result.push(leftArr.shift()); //把最小的最先取出,放到结果集中   
      else   
        result.push(rightArr.shift());  
    }   
    return result.concat(leftArr).concat(rightArr);  //剩下的就是合并,这样就排好序了  
}  
function mergeSort(array){  
    if (array.length == 1) return array;  
    var middle = Math.floor(array.length / 2);       //求出中点  
    var left = array.slice(0, middle);               //分割数组  
    var right = array.slice(middle);  
    // console.log(mergeSort(left))
    return merge(mergeSort(left), mergeSort(right)); //递归合并与排序  
}  

4.待续。。。

相关文章

  • js常用排序

    1. 冒泡排序 原理:从第一个元素开始,把当前元素和下一个索引元素进行比较。如果当前元素大,那么就交换位置,重复操...

  • js 常用排序

    常用排序方法(这里就不写空间复杂度和时间复杂度了。就是用的时间和占的内存)1.冒泡排序 2.快速排序 3.归并排序...

  • JS排序算法

    一些常用js排序算法实现,非原创,用于记录 冒泡排序 时间复杂度:O(n^2);最快:数据是正序时最慢:数据是反序...

  • js常用的排序算法

    1.冒泡排序: 最简单的排序算法,代码实现:function bubbleSort(arr) {var len ...

  • js常用的数组排序

    1、冒泡排序 2、选择排序 3、桶排序 4、sort排序

  • 不要被面试中的数组问题吓倒(Js)

    三个常用面试时出现的函数个 请用javascript语言实现冒泡排序。非常了解原生js的肯定知道js中有个内置函数...

  • 常用的排序算法

    常用的排序算法 常用的排序算法插入排序折半插入排序shell 排序冒泡排序选择排序快速排序基数排序归并排序堆排序K...

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

  • PHP——常用H5参数加密(防抓包)

    常用抓包思路: 如果使用公钥KEY + 参数排序 + decode 加密方式,因js代码可视,所以就好比你人在操场...

  • 数组中有趣的sort排序

    排序作为比较常用的一个功能会在日常业务场景上得到很广泛的应用,在js中为我们提供了一个sort快速排序函数,下面来...

网友评论

      本文标题:js 常用排序

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