def bubble_sort(L): """ 设计思路:从前往后遍历列表,每次选取列表中两个数进行比较,如果不符合排序的规则,则进行交换 这样一次遍历后,最大(最小)的元素就会像气泡一样到达最后位置,从而达到交换的目的 算法优点:稳定,不需要大量额外的空间开销 缺点:慢 时间复杂度:O(n^2) """ length = len(L) if length < 2: return L for i in xrange(length): for j in xrange(length - i - 1): if L[j] > L[j+1]: L[j], L[j+1] = L[j+1], L[j] return L print bubble_sort([1, 5, 2, 6, 3, 6, 2, 3, 7]) def insert_sort(L): """ 算法思想:顺序地从待排序的列表中选出一个元素,然后插入到一个已经排序的列表中,直到整个列表中的元素 都进行了插入,排序就到此结束 :param L: 待排序的列表 :return: 已经排序的列表 """ length = len(L) if length < 2: return L else: for i in xrange(1,length): # 遍历列表 value = L[i] #每次把当前元素当作待插入的对象 j = i -1 # j 始终为i的前一个额元素 while j >= 0 and L[j] < value: //条件循环 L[j+1] = L[j] j -= 1 L[j + 1] = value return L print insert_sort([1, 5, 2, 6, 3, 6, 2, 3, 7])
时间: 2024-11-03 21:04:48