虽然它的原理非常的简单,但实现起来很容易出错。 也曾因为快排导致腥风血雨甚至网站攻击事件。
快速排序由C. A. R. Hoare在1962年提出。...它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列...所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。这个操作称为分区 (partition) 操作,分区操作结束后,基准元素所处的位置就是最终排序后它的位置。...(a, lo, p-1)
27 quickSort(a, p+1, hi)
28}
29 func quickSort_go(a []int, lo, hi int, done chan struct...41 <-childDone
42 } else {
43 quickSort(a, lo, p-1)
44 quickSort(a, p+1, hi)