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)

     

     代码:

  • 相关阅读:
    Angular @HostBinding()和@HostListener()用法
    Java高并发秒杀API之高并发优化
    数据库sql语句例题(转)
    Java方法的静态绑定与动态绑定讲解(向上转型的运行机制详解)
    如何给UIViewController瘦身
    SQLite集成与用法
    谷歌公司发布的程序员养成指南
    iOS文档预览功能教程
    图文解释XCode常用快捷键的使用
    iOS学习之 plist文件的读写
  • 原文地址:https://www.cnblogs.com/snowbxb/p/11585393.html
Copyright © 2011-2022 走看看