Python实现冒泡排序

'''

冒泡排序原理:比较列表中相邻的两个元素大小,如果第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 iin range(len(arrays)-1):

    for jin range(len(arrays)-i-1):

    if arrays[j]

        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)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容