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

    别想太多了,这个冒泡排序就是我们脑海中想到的那个冒泡,就好像是气泡一样,较小的元素比较轻,从而要往上浮出来,

    冒泡排序算法、

           要对‘气泡’序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即‘轻’的元素在下面,就交换它们的位置。显然,处理一遍之后,‘最轻’的元素就浮到了最高的位置;处理两遍之后,‘第二轻的元素’就浮到了第二高的位置。在做第二遍处理时,由于最高位置上的元素已是‘最轻’的元素,所以就不用检查了。一般的,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i - 1遍的处理,它们已经正确的排好序了。

    所以说了这么多干巴巴的理论知识,现在就来点实际的:

    1 def bulle_sort(lst):
    2     for i in range(len(lst)):
    3         for j in range(i + 1, len(lst)):
    4             if lst[i] > lst[j]:
    5                 lst[i], lst[j] = lst[j], lst[i]
    6     return lst
    7 
    8 
    9 print(bulle_sort([3, 2, 4, 1, 7]))

    要记住列表索引顾头不顾尾

    要理解这个冒泡排序关键点就在于其中的两个for循环

    1. 外层循环起始值:i = 0
    2. 内层循环起始值:j = 1

    最外层的控制了第一个数,然后就时通过第二层循环不断的和后面的数的一个比较的过程,通过这个过程,在第二个for循环内部调用if语句,将‘最轻’的气泡,提到最上面来

    当第一个气泡确定之后,就可以通过循环来确定第二个气泡的位置,然后再利用if语句给调在第二高的位置

    然后就是一个周而复始的过程

    在这里要注意:

          外层循环位置:是从头开始循环,然后一直到末尾

          内层循环位置:内层随着外层的循环而循环,所以就不用循环外层的元素,所以要在外层的基础上加上一

     

  • 相关阅读:
    RAID
    js 网页右下角提示框
    程序方式301
    c# ListView 虚拟模式 相关操作
    asp显示出错信息
    servu 9.3.0.1破解
    Linux下红色闪烁文件问题
    服务器实现定时开关机
    php进主页出现:HTTP 错误 500(Internal Server Error):服务器尝试执行请求时遇到了意外情况。
    怎样使用yum只下载一个包而不安装呢?
  • 原文地址:https://www.cnblogs.com/tulintao/p/10749543.html
Copyright © 2011-2022 走看看