排序算法:
注意:容器中必须重载 op< ,排序中stl标准中要求用小于来进行比较。
7.53、sort //全排序。
7.54、stable_sort //稳定排序。两个或两个以上的相邻且相等的元素是不会进行相对位置的变化的。
7.55、partial_sort //部分排序。会先调用sort得到指定个数的全部排序的结果,而调用sort只是中间过程。结果是
//除了指定个数之外其他的元素该是如何还是如何。
7.56、partial_sort_copy //获得部分排序个数的结果。
7.57、template <class ForwardIterator> bool is_sorted (ForwardIterator first, ForwardIterator last) { if (first==last) return true; ForwardIterator next = first; while (++next!=last) { if (*next < *first) // or, if (comp(*next,*first)) for version (2) return false; //标准指定有小于号来进行比较排序。从小到大。 ++first; } return true; } //所做的事情是:判断区间是否已经是排序好了的。这个排序是从小到大,而从大到小也是会返回FALSE。
7.58、template <class ForwardIterator> ForwardIterator is_sorted_until (ForwardIterator first, ForwardIterator last) { if (first==last) return first; ForwardIterator next = first; while (++next!=last) { if (*next < *first) return next; //返回已经排序好的最后一个位置的后一个。 ++first; } return last; } //所做的事情是:返回直到排序好的最后一个位置的下一个。 7.59、nth_element //对第n大的元素进行大小的分割,左边小,右边大。
时间: 2024-10-18 03:17:37