Python代码实现快速排序
排序算法-快速排序
def sort(alist, left, right): """ 快速排序 :param alist: 需要排序的序列 :param left: 需要排序的序列开始位置索引 :param right: 需要排序的序列结束位置索引 :return: 排序好的序列 """ low = left high = right if low > high: # 结束递归 return mid = alist[low] # 基数 while low < high: # 一直循环,知道low=high while low < high: # 一开始是从右往左 if alist[high] >= mid: # 如果high指向的数大于等于基数,high-1 high -= 1 else: # 如果high指向的数小于基数,结束循环 alist[low] = alist[high] low += 1 break while low < high: # 从左往右 if alist[low] <= mid: # 如果low指向的数小于等于基数,low-1 low += 1 else: # 如果low指向的数大于基数,结束循环 alist[high] = alist[low] high -= 1 break if low == high: # 当low的high时,把基数赋值给此处对应的位置 alist[high] = mid # 基数左侧作为新列表传入 sort(alist, left, low - 1) # 基数右侧作为新列表传入 sort(alist, high+1, right) return alist lst = [6, 1, 2, 7, 9, 3, 4, 5, 10, 8] print(sort(lst, 0, len(lst) - 1))
下一篇:
最长回文子串——动态规划