zoukankan      html  css  js  c++  java
  • js的几种常用排序方法

    1. 冒泡排序:

        依次比较两个相邻的元素,如果前一个数比后一个数大时就交换位置,比较晚第一轮最后一个元素是最大的元素,所以就不需要在比较最后一个元素了    

    var arr = [1, 2, 5, 7, 9, 22, 40]
    for(var i=0; i<arr.length-1; i++){
        for(var j=0; j<arr.length-i-1; j++) {
           if (arr[j] > arr[j+1]) {
                 var temp = arr[j]
                 arr[j] = arr[j+1]
                 arr[j+1] = temp
            } 
        }
    }            

    2. 选择排序

        首先在元素中找到最小的元素,把他放在最前边,然后再从剩下的元素中寻找最小的元素,依次放在最左边...

    var arr = [1,4,7,9,10,4,7,90,22]
    for (var i=0; i<arr.length-1; i++) {
        var minIndex = i
            for (var j=i; j<arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                     minIndex = j               
                }
            }
            var temp = arr[i]    
            arr[i] = arr[minIndex]
            arr[minIndex] = temp    
    }    
    

    3. 快速排序

        先从数组中取出一个数作为基准值,将比这个数大的放在它右边,将比这个小的放在它左边,依次...    

    function quickSort (arr) {
       if(arr.length<=1){return arr}
       var left = [], right = [], mid = arr.splice(Math.floor(arr.length/2), 1)
       for (var i=0; i<arr.length; i++) {
             if (arr[i] < mid) {
                 left.push(arr[i])
            } else {
                right.push(arr[i])
         }
      }
      return quickSort(left).concat(mid,quickSort(right))
    }
    
    console.log(quickSort([1,5,7,9,23,67,8,2,4]))

    4. 插入排序  

        从第一个元素开始该元素可以被认为已经被排序,取出下一个元素,如果该元素大于新的元素,则将该元素移到下一个位置,依次...

    function insertSort (arr) {
      for (var i=0; i<arr.length; i++) {
            var j = i-1
         var key = arr[i]  while (j >=0 && arr[j] > key) { arr[j+1] = arr[j] j--; } arr[j+1] = key } return arr }

      

     

  • 相关阅读:
    创建支持SSH服务的镜像
    docker网络基础配置
    docker数据管理
    ELK安装笔记
    OpenVAS虚拟机安装
    nslookup命令
    docker仓库操作
    Percona Monitoring and Management (PMM)安装使用
    zabbix2.4.5安装zatree插件
    docker容器操作
  • 原文地址:https://www.cnblogs.com/qianxiaoniantianxin/p/14921876.html
Copyright © 2011-2022 走看看