各种排序算法分析总结(待整理))
2023-09-27 14:21:08 时间
用过C语言中的qsort, 想知道qsort和他们的比较,那我告诉你,qsort和sort是一样的,因为他们采用的都是快速排序。从效率上看,以下几种sort算法的是一个排序,效率由高到低(耗时由小变大):
partion
stable_partition
nth_element
partial_sort
sort
stable_sort
记得,以前翻译过Effective STL的文章,其中对如何选择排序函数总结的很好:
若需对vector, string, deque, 或 array容器进行全排序,你可选择sort或stable_sort;
若只需对vector, string, deque, 或 array容器中取得top n的元素,部分排序partial_sort是首选.
若对于vector, string, deque, 或array容器,你需要找到第n个位置的元素或者你需要得到top n且不关系top n中的内部顺序,nth_element是最理想的;
若你需要从标准序列容器或者array中把满足某个条件或者不满足某个条件的元素分开,你最好使用partition或stable_partition;
若使用的list容器,你可以直接使用partition和stable_partition算法,你可以使用list::sort代替sort和stable_sort排序。若你需要得到partial_sort或nth_element的排序效果,你必须间接使用。正如上面介绍的有几种方式可以选择。
总之记住一句话: 如果你想节约时间,不要走弯路, 也不要走多余的路!
相关文章
- C/C++排序算法(四)—— 归并排序和计数排序
- 蓝桥杯基础算法(一)—— 快速排序
- 自动驾驶感知——激光雷达物体检测算法
- 前端面试中的常见的算法问题
- 常用排序算法比较与分析
- 【数据结构与算法】归并排序的原理及算法实现
- 【工程应用三】三种不同的文本图像背景漂白/纯化/去除算法。
- 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting
- [数据结构与算法]常用排序算法分析与实现:第一部分
- JavaScript算法实现——排序
- 拆解滴滴大脑 叶杰平谈出行领域算法技术
- 强化学习精要:核心算法与TensorFlow实现
- 分布式自增ID算法-Snowflake详解
- 九章算法——面试题思路
- 七月算法机器学习1 概率论
- 麦子学院6.1 神经网络算法(Nerual Networks)(上) 学习笔记
- Java 基础(排序算法, 冒泡排序)
- STL算法 | 查找函数 find()、二分查找binary_search/upper_bound、子序列查找search
- 十大经典排序算法总结