如何理解快速排序?
第一步,想象手中有一副扑克牌。
第二步,按照一定规则抽取一张牌作为基准牌(中间牌)
第三步,从左边开始挑一张比基准牌大的,先挑出来(正常拿牌姿势,像凑对子一样让这张牌露出来一点)保持牌状不变。
第四步,从右边开始挑一张比基准牌小的,同理。
第五步,交换这两张拍,从交换点继续做第三和第四步,很容易知道,这样一来左边的所有牌都比基准牌小,右边的牌都比基准牌大。
第六步,把基准牌X插到临界点。
第七步,把基准牌两边的数组分割开来做同样的事情,直到不可分割。
如何理解快速排序?
第一步,想象手中有一副扑克牌。
第二步,按照一定规则抽取一张牌作为基准牌(中间牌)
第三步,从左边开始挑一张比基准牌大的,先挑出来(正常拿牌姿势,像凑对子一样让这张牌露出来一点)保持牌状不变。
第四步,从右边开始挑一张比基准牌小的,同理。
第五步,交换这两张拍,从交换点继续做第三和第四步,很容易知道,这样一来左边的所有牌都比基准牌小,右边的牌都比基准牌大。
第六步,把基准牌X插到临界点。
第七步,把基准牌两边的数组分割开来做同样的事情,直到不可分割。