zoukankan      html  css  js  c++  java
  • 算法-冒泡算法

    1.冒泡算法,是一种相对来说简单容易理解,易操作,但是不够便捷的一种排序方式

    下面,通过一个例子,来快速的理解冒泡算法的含义,现在假如有一个列表a = [9, 5 ,1 ,4, 8, 6, 2, 3, 7 ]

    列表a中含有数字1-9,现在通过冒泡算法来将列表中的数字进行正序排列。

    第一遍:将下标为0的9作为中心点,和下标为1的数做比较,如果大于下标为1的数字则交换位置,否则保持位置不变

        如果交换了位置,则继续将9作为中心点,继续和下标为2的数值做比较,大于则交换位置,否则保持不变,以此类推。直到最后一个数为止

        如果没有交换位置,则按照作比较的下标为1的数字和下一位下标为2的数字进行比较,大于则交换位置,否则保持不变,以此类推。直到最后一个数为止

        a[0] = 9, a[1] = 5 9>5 则 a = [5, 9, 1, 4, 8, 6, 2, 3, 7] 

        a[1] = 9, a[2] = 1 9>2 则 a = [5, 1, 9, 4, 8, 6, 2, 3, 7] 

        以此类推

    第二遍:当所有的数字都做了比较之后,得到的应该是这样的一个列表 a = [5, 1, 4, 8, 6, 2, 3, 7, 9]

        将下标为0数字和下标为1的数字作比较,如果大于则交换位置,否则位置不变,规则和第一遍的相同

        于是,按照这样的原理,当执行到第八遍的时候,列表就是一个正序排列的列表 a = [1, 2, 3, 4, 5, 6, 7, 8, 9]

    2.冒泡算法仍然拥有优化改进的地方,具有相对的可操作性,但是也从侧面反映了冒泡算法庞大的计算量

  • 相关阅读:
    TinyOS在ubuntu 14.04下安装教程
    C++ STL标准入门
    C++ 模板
    多态
    C++继承
    C++类型转换 -- 由其他类型转换到自定义类型
    运算符重载
    友元
    typedef用法
    c++细节--section1
  • 原文地址:https://www.cnblogs.com/zxh1297/p/9324191.html
Copyright © 2011-2022 走看看