快速排序的python实现
def quick_sort(array, left, right): if left < right: base_index = division(array, left, right) quick_sort(array, left, base_index - 1) # 对小于基准值的再次进行分割 quick_sort(array, base_index + 1, right) # 对大于基准值的再次进行分割 def division(array, left, right): base_value = array[right] i = left for j in range(left, right): # 遍历除最后一个元素的其他元素 if array[j] <= base_value: # 和基准值对比 array[i], array[j] = array[j], array[i] # 小于基准值,则替换到list前 i += 1 # 替换过后,往后移一位,准备接受下次替换 array[i], array[right] = array[right], array[i] # 遍历完成后,将基准值放到所有小于它的值之后 return i # 返回基准值的index,用于分割列表 if __name__ == '__main__': a = [random.randint(1, 1000) for i in range(50)] quick_sort(a, 0, len(a) - 1) print a