C++标准库中各种排序归纳(3)

4. 如果有一个vector、string、deque或者数组,并且需要找到第n个位置的元素,或者,需要找到等价性最前面的n个元素但又不必对这n个元素进行排序,那么nth_element正是你所需要的函数。

5. 如果需要将一个标准序列容器中的元素按照是否满足某个特定的条件区分开来,那么,partition和stable_partition可能比较合适。

6. 如果你的数据在一个list中,那么你仍可以直接调用partition和stable_partition算法;可以用list::sort来代替sort和stable_sort算法。但是,如果你需要获得partial_sort或者nth_element算法的效果,那么只能通过一些间接的途径来完成。比如可以将list中的元素复制到一个提供随机访问迭代器的容器中,然后对该容器执行相应的你所期望的排序。

四、性能

总的来说,算法所做的工作越多,它需要的时间也越多。稳定排序算法要比忽略稳定性的算法更耗时。可以依照算法的时间、空间效率对算法进行排序(消耗资源最少的算法排在前面):

1. partition

2. stable_partition

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3bb27176a87a67626b422fd3dec6e545.html