冒泡排序(bubble sort)

冒泡排序(bubble sort)

1.原理

已知一组无序数据a[0]、a[1]、……a[n-1],需将其用冒泡排序按升序排列。

首先比较a[0]与a[1]的值,若a[0]大于a[1]则交换两者的值,否则不变。再比较a[1]与a[2]的值,若a[1]大于a[2],则交换两者的值,否则不变。同理,最后比较a[n-2]与a[n-1]的值。这样处理一轮后,这组数据中最大的是a[n-1]。

再对a[0]到a[n-2]以相同方法处理一轮,这组数据中最大的是a[n-2]。同理,一共处理n-1轮后a[0]、a[1]、……a[n-1]就以升序排列了。

比较的轮数:n-1

比较的次数:n * (n-1) / 2

优点:稳定的排序算法。

缺点:时间复杂度O(n^2),最好的情况和最坏的情况都是O(n^2)。

2.Python实现冒泡排序

# 冒泡排序的Python实现
def bubble_sort(nums):
    for i in range(len(nums)-1):
        for j in range(len(nums)-1-i):
            if nums[j] > nums[j+1]:
                nums[j],nums[j+1]=nums[j+1],nums[j]
    return nums

if __name__ == '__main__':
    list1 = [77,64,89,61,97,70]
    print("冒泡排序后:",bubble_sort(list1))

猜你喜欢

转载自blog.csdn.net/southwind0/article/details/80503037
今日推荐