zoukankan      html  css  js  c++  java
  • js快速排序笔记

    冒泡和快速排序

    这两种排序方式是最常见也是面试最容易提及到的内容,这里做个比较加以理解

    1. 冒泡排序就是一遍一遍循环N*N次比较这里不做详解

    2. 快速排序就是取一个数组的中间值,然后小于的放左边,大于的放右边,然后递归quickSort(left).concat(mid,quickSort(right));

      var arr =[2,9,0,4,4,6,3,8,10,2,6,4];

      arr = quickSort(arr)//这个必须重新赋值给arr,否则在下面标红的地方改变了原来的数组,直接取arr会是未排序且删除掉中间值的一个数组。 function quickSort(arr){ if(arr.length<=1){//长度小于等于1的直接返回数组 return arr; } var mid = Math.floor(arr.length/2); mid = arr.splice(mid,1)[0];//提取中间值(arr原来数组会去掉mid这个值,并且返回mid位置的值) var left=[],right=[]; for(var i=0;i<arr.length;i++){ if(arr[i]<=mid){//将等于比较值的放回左边或者右边,不然重复的数字会去掉 left.push(arr[i]); } if(arr[i]>mid){ right.push(arr[i]); } } return quickSort(left).concat(mid,quickSort(right));//数组拼接 }

        

     注意:特别注意代码块当中标红的地方mid = arr.splice(mid,1)[0];。必须重新赋值给新的数组,不能使用原来的引用

  • 相关阅读:
    springboot02-SpringSecurity
    java基础07- 二维数组
    java基础06-数组的使用
    逆向工程核心原理——第四章
    逆向工程核心原理——第三章
    Crackme_1_Acid_burn
    Crackme_2_Afkayas.1
    逆向工程核心原理——第二章
    MessageBox
    Python(基础)
  • 原文地址:https://www.cnblogs.com/hehedaa/p/8336882.html
Copyright © 2011-2022 走看看