首页 > 代码库 > qsort

qsort

网上写的都不知道什么鬼。。。

根本看不下去,我思考了一下原因:他们的抽象方法不对。

 

如何理解快速排序?

 

第一步,想象手中有一副扑克牌。

 

第二步,按照一定规则抽取一张牌作为基准牌(中间牌)

 

第三步,从左边开始挑一张比基准牌大的,先挑出来(正常拿牌姿势,像凑对子一样让这张牌露出来一点)保持牌状不变。

 

第四步,从右边开始挑一张比基准牌小的,同理。

 

第五步,交换这两张拍,从交换点继续做第三和第四步,很容易知道,这样一来左边的所有牌都比基准牌小,右边的牌都比基准牌大。

 

第六步,把基准牌X插到临界点。

 

第七步,把基准牌两边的数组分割开来做同样的事情,直到不可分割。

 

qsort