0
点赞
收藏
分享

微信扫一扫

算法1---冒泡排序(python)

猎书客er 2022-03-17 阅读 51

算法1—冒泡排序(python)

基本思想:
  每次比较两个相邻的元素,如果它们的顺序错误就把它们交换
过来
运行步骤:

  • 比较相邻元素,将两者按照升序位置进行排列,即第一个大于第二个,将两者进行交换,若不是,则保持不变;
  • 从第一对一直到结尾的最后一对,对每一对数据都进行步骤一的比较处理,并将最大的元素放在后面。这样,遍历完所有相邻元素后,整个序列的最后一个元素会是最大的数;
  • 将循环缩短一位(因为最后一个元素已经是序列最大的数了),再重复步骤2的处理,得到倒数第二个大的数;
  • 持续步骤3 的处理,每次将循环缩短一位,并得到本次循环中的最大的数,直到循环个数缩短为1,此时已经没有一对数据可以比较了,则得到了一个从小到大(升序)排序的序列。

总结:每次都是比较相邻的两个数,如果后面的数比前面的数小,则交换这两个数的位置。一直比较下去直到最后两个数比较完毕后,最大的数就在最后一个了。就如同是一个气泡,一步一步往后“翻滚”,直到最后一位。所以这个排序的方法有一个很好听的名字“冒泡排序”

如下图所示:

在这里插入图片描述

代码实现:

def bubble_Sort(array_list):
    #遍历所有数据
    L = len(array_list)
    for i in range(L):
        #遍历所有相邻数据
        for j in range(L-i-1):
            if array_list[j] >= array_list[j+1]:
                array_list[j],array_list[j+1] = array_list[j+1],array_list[j]
    

if __name__=="__main__":
    arr = [12,35,99,18,76]
    bubble_Sort(arr)
 
    print ("排序后的数组:",arr)

运行结果:

排序后的数组: [12, 18, 35, 76, 99]
举报

相关推荐

0 条评论