Python:冒泡排序算法


冒泡排序:空间复杂度为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


你可能感兴趣的:(python)