ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

[经典算法]冒泡排序 Bubble-Sort

2021-12-19 21:00:43  阅读:167  来源: 互联网

标签:Sort BubbleSort 结果 冒泡排序 len ls 排序 Bubble


类似于水中冒泡,较大的快一点冒起来,较小的慢慢冒起来。假设从小到大排序,即较大的数慢慢往后排,较小的数慢慢往前排。每一趟遍历,将一个最大的数移到序列末尾。

基本方法:

1、比较数组中两个相邻的元素,如果第一个数比第二个大,则交换位置

2、每一次比较,都会产生一个最大或者最小的数,移到数组后面

3、下一轮则可以少一次排序,依次循环,直到结束

def BubbleSort(ls):
    for i in range(len(ls)-1): # 从第2个数对比排序,需要len(ls)-1趟排序
        for j in range(len(ls)-1-i): # 每一趟排序确定一个数,每一趟需要两两比较的次数为len(ls)-1-i
            if ls[j+1] < ls[j]: # 暂存,然后交换位置
                temp = ls[j+1]
                ls[j+1]  = ls[j]
                ls[j] = temp
            print('第',i+1,'趟 第',j+1,'次的排序结果为:',ls)
    return ls

        
a = [9,5,6,8,2,7,3,4,1]
print('冒泡排序结果为:',BubbleSort(a))
====================== RESTART: test.py ======================
第 1 趟 第 1 次的排序结果为: [5, 9, 6, 8, 2, 7, 3, 4, 1]
第 1 趟 第 2 次的排序结果为: [5, 6, 9, 8, 2, 7, 3, 4, 1]
第 1 趟 第 3 次的排序结果为: [5, 6, 8, 9, 2, 7, 3, 4, 1]
第 1 趟 第 4 次的排序结果为: [5, 6, 8, 2, 9, 7, 3, 4, 1]
第 1 趟 第 5 次的排序结果为: [5, 6, 8, 2, 7, 9, 3, 4, 1]
第 1 趟 第 6 次的排序结果为: [5, 6, 8, 2, 7, 3, 9, 4, 1]
第 1 趟 第 7 次的排序结果为: [5, 6, 8, 2, 7, 3, 4, 9, 1]
第 1 趟 第 8 次的排序结果为: [5, 6, 8, 2, 7, 3, 4, 1, 9]
第 2 趟 第 1 次的排序结果为: [5, 6, 8, 2, 7, 3, 4, 1, 9]
第 2 趟 第 2 次的排序结果为: [5, 6, 8, 2, 7, 3, 4, 1, 9]
第 2 趟 第 3 次的排序结果为: [5, 6, 2, 8, 7, 3, 4, 1, 9]
第 2 趟 第 4 次的排序结果为: [5, 6, 2, 7, 8, 3, 4, 1, 9]
第 2 趟 第 5 次的排序结果为: [5, 6, 2, 7, 3, 8, 4, 1, 9]
第 2 趟 第 6 次的排序结果为: [5, 6, 2, 7, 3, 4, 8, 1, 9]
第 2 趟 第 7 次的排序结果为: [5, 6, 2, 7, 3, 4, 1, 8, 9]
第 3 趟 第 1 次的排序结果为: [5, 6, 2, 7, 3, 4, 1, 8, 9]
第 3 趟 第 2 次的排序结果为: [5, 2, 6, 7, 3, 4, 1, 8, 9]
第 3 趟 第 3 次的排序结果为: [5, 2, 6, 7, 3, 4, 1, 8, 9]
第 3 趟 第 4 次的排序结果为: [5, 2, 6, 3, 7, 4, 1, 8, 9]
第 3 趟 第 5 次的排序结果为: [5, 2, 6, 3, 4, 7, 1, 8, 9]
第 3 趟 第 6 次的排序结果为: [5, 2, 6, 3, 4, 1, 7, 8, 9]
第 4 趟 第 1 次的排序结果为: [2, 5, 6, 3, 4, 1, 7, 8, 9]
第 4 趟 第 2 次的排序结果为: [2, 5, 6, 3, 4, 1, 7, 8, 9]
第 4 趟 第 3 次的排序结果为: [2, 5, 3, 6, 4, 1, 7, 8, 9]
第 4 趟 第 4 次的排序结果为: [2, 5, 3, 4, 6, 1, 7, 8, 9]
第 4 趟 第 5 次的排序结果为: [2, 5, 3, 4, 1, 6, 7, 8, 9]
第 5 趟 第 1 次的排序结果为: [2, 5, 3, 4, 1, 6, 7, 8, 9]
第 5 趟 第 2 次的排序结果为: [2, 3, 5, 4, 1, 6, 7, 8, 9]
第 5 趟 第 3 次的排序结果为: [2, 3, 4, 5, 1, 6, 7, 8, 9]
第 5 趟 第 4 次的排序结果为: [2, 3, 4, 1, 5, 6, 7, 8, 9]
第 6 趟 第 1 次的排序结果为: [2, 3, 4, 1, 5, 6, 7, 8, 9]
第 6 趟 第 2 次的排序结果为: [2, 3, 4, 1, 5, 6, 7, 8, 9]
第 6 趟 第 3 次的排序结果为: [2, 3, 1, 4, 5, 6, 7, 8, 9]
第 7 趟 第 1 次的排序结果为: [2, 3, 1, 4, 5, 6, 7, 8, 9]
第 7 趟 第 2 次的排序结果为: [2, 1, 3, 4, 5, 6, 7, 8, 9]
第 8 趟 第 1 次的排序结果为: [1, 2, 3, 4, 5, 6, 7, 8, 9]
冒泡排序结果为: [1, 2, 3, 4, 5, 6, 7, 8, 9]

image

标签:Sort,BubbleSort,结果,冒泡排序,len,ls,排序,Bubble
来源: https://www.cnblogs.com/gisen_6/p/15708534.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有