排序算法:
注意:容器中必须重载 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大的元素进行大小的分割,左边小,右边大。