Python实现冒泡排序

liftword22小时前技术文章5
'''
冒泡排序原理:比较列表中相邻的两个元素大小,如果第2个元素比第1个元素大,就交换它俩的位置,从列表的开始到结尾,
依次对每一组相邻的2个元素都进行比较,这样最大的元素就排到了最前面,第一轮排序结束。
继续循环上面步骤,一直到只剩下一个元素没有排序为止,排序结束
例如数组:{38,65,97,76,13,27,49},具体排序过程如下:
第1轮排序:97 [65 76 38 27 49 13]
第2轮排序:97 76 [65 38 27 49 13]
第3轮排序:97 76 65 [38 27 49 13]
第4轮排序:97 76 65 49 [38 27 13]
第5轮排序:97 76 65 49 38 [27 13]
第6轮排序:97 76 65 49 38 27 [13]
'''
#实现代码
def bubble_sort(arrays):
    for i in range(len(arrays)-1):
        for j in range(len(arrays)-i-1):
            if arrays[j]<arrays[j+1]:
                arrays[j],arrays[j+1]=arrays[j+1],arrays[j]
    return arrays

if __name__ == '__main__':
    arrays = [38, 65, 97, 76, 13, 27, 49]
    print("排序前:" + str(arrays))
    print("排序后:" + str(bubble_sort(arrays)))

看一下执行结果:


时间复杂度:冒泡排序中需要进行 n-1 轮“冒泡”,每一轮“冒泡”需要进行 n-i 次比较和交换操作,i 的平均值为 n/2,时间复杂度为 T(n)=n(n-1)/2,再乘每次操作的步骤数,所以冒泡排序的时间复杂度为 O(n^2)

空间复杂度:O(1)

欢迎大家关注我的微信公众号:

相关文章

Python数据可视化工具画图(八)(气泡图)

概述在《Python数据可视化工具画图(七)(热力图)》中讲述了如何通过python画热力图,本文讲述如何通过python画气泡图。matplotlib安装方法:pip install matplot...

数据可视化:探索气泡图(bubble charts)的力量

气泡图(bubble charts),也称为泡泡图,是展示数据的最引人注目的方式之一。它展示了前两个信息部分之间的关系。此外,它还突出显示了另一个重要部分,这个部分不总是直接依赖于前两个部分。当试图检...

探索Plotly:Python中的强大交互式图表库

Python的开源图形库Plotly (一)plotly 是一个交互式、开源、基于浏览器的 Python 图形库。plotly 图形库可制作交互式、出版质量的图形。包括制作线图、散点图、面积图、条形图...

如何用Python实现冒泡排序算法

一、冒泡排序的原理简介冒泡排序(Bubble Sort)是一种简单的排序算法,其核心思想是通过不断比较相邻元素并交换位置,将较大的元素逐渐“浮”到数组的末尾,就像气泡上浮一样。它的主要特点:时间复杂度...

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

冒泡排序是数据结构中的一种经典算法,手工地实现冒泡排序,对于锻炼自己的编程逻辑有很大的帮助,本节就带领大家用循环结构实现冒泡排序算法。冒泡排序算法的实现思想遵循以下几步:1、比较相邻的元素,如果第一个...