Python:冒泡排序算法

来源:互联网 发布:战锤全面战争 mac中文 编辑:程序博客网 时间:2024/05/17 02:07


冒泡排序:空间复杂度为O(1),时间复杂度为O(n^2),改进算法的时间复杂度最好情况为O(n),算法稳定,具有

应性

比较相邻元素,如为逆序,则交换位置

算法的稳定性是指:对于待排序的序列中,相同项的原来次序不能被改变

算法的适应性是指:算法因原序列有序而更高效

def bubble_sort(lst):    for i in range(len(lst)):        for j in range(1, len(lst)-i):            if lst[j-1] > lst[j]:                lst[j-1], lst[j] = lst[j], lst[j-1]    print lst# 算法改进:加入一个辅助变量def bubble_sort1(lst):    for i in range(len(lst)):        found = False        for j in range(1, len(lst)-i):            if lst[j-1] > lst[j]:                lst[j-1], lst[j] = lst[j], lst[j-1]            found = True        if not found:            break    print lst