一文解读Python嵌套循环实现冒泡排序

createh53周前 (05-04)技术教程9

冒泡排序是数据结构中的一种经典算法,手工地实现冒泡排序,对于锻炼自己的编程逻辑有很大的帮助,本节就带领大家用循环结构实现冒泡排序算法。

冒泡排序算法的实现思想遵循以下几步:

1、比较相邻的元素,如果第一个比第二个大,就交换它们两个。

2、从最开始的第一对到结尾的最后一对,对每一对相邻元素做步骤1所描述的比较工作,并将最大的元素放在后面。这样,当从最开始的第一对到结尾的最后一对都执行完后,整个序列中的最后一个元素便是最大的数。

3、将循环缩短,除去最后一个数(因为最后一个已经是最大的了),再重复步骤2的操作,得到倒数第二大的数。

4、持续做步骤3的操作,每次将循环缩短一位,并得到本次循环中的最大数。直到循环个数缩短为1,即没有任何一对数字需要比较,此时便得到了一个从小到大排序的序列。

通过分析冒泡排序算法的实现原理,要想实现该算法,需要借助循环结构,更确切地说,需要使用嵌套循环结构,使用for循环或者while循环都可以。

例如,使用for循环实现用冒泡排序算法对[5,8,4,1]进行排序:

data = [5,8,4,1]
#实现冒泡排序
for i in range(len(data)-1):
    for j in range(len(data)-i-1):
        if(data[j]>data[j+1]):
            data[j],data[j+1] = data[j+1],data[j]
print("排序后:",data)1234567复制代码类型:[python]

运行结果为:

排序后:[1, 4, 5, 8]1复制代码类型:[python]

可以看到,实现冒泡排序使用了2层循环,其中外层循环负责冒泡排序进行的次数,而内层循环负责将列表中相邻的两个元素进行比较,并调整顺序,即将较小的放在前面,较大的放在后面。

开课吧广场-人才学习交流平台

相关文章

C++ 初学阶段-冒泡法排序(c++冒泡排序模板)

C++ 初学阶段-冒泡法排序(c++冒泡排序模板)

#头条创作挑战赛#学程序重要的思维,冒泡法排序冒泡法排序,从第一个数值开始分别与后面的数值对比大小。大与就互换位置,直到换到最后一个数字。排序前数组:10,47,3,82,55,90,38,60,21...

冒泡、插入、选择排序(C语言)(c语言冒泡排序需要注意什么)

以下排序算法默认从小到大的升序排序。冒泡排序思路从数组的第一个数a[0]开始,向后遍历,每次比较a[i]和a[i+1]的值若a[i]大于a[i+1],就交换两个位置的数的值。重复上述1和2的操作至a[...

Python | 数据结构 - 冒泡排序和选择排序

排序算法比较排序算法平均时间复杂度最坏时间复杂度空间复杂度是否稳定冒泡排序O(n2)O(n2)O(1)是选择排序O(n2)O(n2)O(1)不是插入排序O(n2)O(n2)O(1)是希尔排序O(n1....

冒泡排序:用Python轻松实现的排序算法

当涉及数据结构与算法,实际编程练习是非常重要的,因为理论知识只有通过实际应用才能真正理解和掌握。让我们以一个经典的排序算法——冒泡排序为例,逐步讲解如何实现它、计算时间复杂度以及一些优化思路。1. 冒...

C语言的十大组数之冒泡排序法的应用

情景回顾上节回顾:C语言的数组:跨越一个阶梯,如何用一种数据结构存储无限多的数据?本节重点本节重点:冒泡排序法关注不迷路微信公众号:工控小新学习工控知识就来工控小新,为你提供工控笔记知识:EPLAN电...