天天看點

STL 源代碼剖析 算法 stl_algo.h -- partition

partition

------------------------------------------------------------------------

描寫叙述:partition 會将區間[first,last) 中的元素又一次排列。全部被一進制條件運算 pred 判定為 true 的元素,都會被放在區間的前段,

被判定為 false 的元素,都會被放在區間的後段。

partition 不穩定,不保證 partition 後元素保留在原始相對位置。 stable_partition 穩定

思路:

1.first往下查找,遇到"符合移動條件"(pred不成立)的就停下來

2.last往上查找,遇到"符合移動條件"(pred成立)的就停下來

3.交換 *first 和 *last, ++first, --last

STL 源代碼剖析 算法 stl_algo.h -- partition

複雜度:O(n)

源代碼:

示範樣例:

本文轉自mfrbuaa部落格園部落格,原文連結:http://www.cnblogs.com/mfrbuaa/p/5178345.html,如需轉載請自行聯系原作者

繼續閱讀