文章目錄

读者可以找一本书, 研究一下快速排列法(Quick Sort)的概念, 并且写成程序

说明: 快速排列法是CAR. Hoare提出来的方法, 它需用到递归的技巧。它的概念是这样的, 有一个数组x[], 它有n个元素。如果能够在x[]中找出一个元素x[k], 使得在x[k]左边都比x[k]小或相等, 在x[k]右边的则大于或等于x[k].

因此, 只要把x[1]~x[k-1], x[k+1]~x[n]分别排列好, 两者合并, 就可以把整个x[]排好了

所以为x[1]…x[n]排序就分成两个部分, 第一部分是找出一个分界点x[k], 满足上述的条件, 第二部分是递归地去排x[1], … x[k-1], 与x[k+1], …, x[n], 排好后结果就出来了

所有快速排列法程序的差异都在第一步, 如何找出分界点x[k]

解答见quick_sort.py

打赏作者

文章目錄