快速排序

/ Python / 0 条评论 / 230浏览

def quick_sort(array, start, end): if start >= end: return mid_data, left, right = array[start], start, end while left < right: while array[right] >= mid_data and left < right: right -= 1 array[left] = array[right] while array[left] < mid_data and left < right: left += 1 array[right] = array[left] array[left] = mid_data quick_sort(array, start, left-1) quick_sort(array, left+1, end)

if name == 'main': array = [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21] quick_sort(array, 0, len(array)-1) print(array) 第一个数为基准数,之后到结尾的数依次和其比较,比他大的放右边,比他小的放左边,并且记录位置 交换左边最后与第一个基准数的位置。 依次对左边来讲,选第一个为第二基准数,依次比较, 对右边依然进行选基准数,进行排序