stl_algorithm算法之排序算法

Posted _xiaohaige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stl_algorithm算法之排序算法相关的知识,希望对你有一定的参考价值。

排序算法:

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

以上是关于stl_algorithm算法之排序算法的主要内容,如果未能解决你的问题,请参考以下文章

stl_algorithm算法之融合算法

stl_algorithm算法之变动性算法和非动性算法

stl_algorithm算法之Max/Min算法

stl_algorithm算法之二分法查找

算法排序之堆排序

Java排序算法 - 堆排序的代码