zoukankan      html  css  js  c++  java
  • 面试题常考&必考之--js数组排序冒泡排序和快速排序

    冒泡排序:

    原理:比较相邻的元素,将值大的元素交换到右边。(如果相等不进行交换)

    实例:

    要排列数组:[10,1,35,61,89,36,55]

    第一趟排序:

          第1次排序:10和1比较,10>1,交换位置       [1,10,35,61,89,36,55]

          第2趟排序:10和35比较,10<35,不交换位置  [1,10,35,61,89,36,55]

          第3趟排序:35和61比较,35<61,不交换位置  [1,10,35,61,89,36,55]

          第4趟排序:61和89比较,61<89,不交换位置  [1,10,35,61,89,36,55]

            第5趟排序:89和36比较,89>36,交换位置   [1,10,35,61,36,89,55]

           第6趟排序:89和55比较,89>55,交换位置    [1,10,35,61,36,55,89]

          第一趟总共进行了6次比较,排序结果:[1,10,35,61,36,55,89]

    第二趟..........

    分析:数组中N(七)个数字要排序完成,总共进行N-1(六)趟排序,每i趟的排序次数为(N-i)次

    所以写代码可以用for的双重循环语句,(外层控制循环多少趟,内层控制每一趟的循环次数)

    代码:

    快速排序:

    原理:每轮从数组中取出一个数作为基准

              在排序过程中,小于或者等于基准的数放在基准的左边,大于基准的全部放在右边

              在对左边和右边的继续进行上面两部,直到间距为1


    方法:

            以下方法来源CSDN,感觉通俗易懂,分享给大家:


            [6  1  2 7  9  3  4  5 10  8](选择每轮数组中的第一个数作为基数,所以起始为6)

     

     代码:

  • 相关阅读:
    IP掩码的作用
    linux shell 笔记
    ubuntu apt-get Failed to fetch Temporary failure resolving 'security.ubuntu.com'
    ubuntu 16.04 & 18.04 远程桌面使用
    取消Ubuntu开机硬盘自检
    linux shell 脚本输入参数解析
    Ubuntu 16.04 + python3 源码 安装+使用labelImg最新版
    用tinyxml2读写xml文件_C++实现
    常用工具问题及解决方案
    可视化调试工具
  • 原文地址:https://www.cnblogs.com/snowbxb/p/11585393.html
Copyright © 2011-2022 走看看