zoukankan      html  css  js  c++  java
  • 各种排序算法分析总结(待整理))

    用过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的排序效果,你必须间接使用。正如上面介绍的有几种方式可以选择。
    总之记住一句话: 如果你想节约时间,不要走弯路, 也不要走多余的路! 

  • 相关阅读:
    商战
    广告、好广告
    车的一点知识
    微服务应用的性能
    js 的一点用法
    做生意、做买卖
    [CODEVS1912] 汽车加油行驶问题(分层图最短路)
    [CODEVS1911] 孤岛营救问题(分层图最短路)
    [luoguP2754] 星际转移问题(最大流)
    [POJ1226]Substrings(后缀数组)
  • 原文地址:https://www.cnblogs.com/icmzn/p/5929367.html
Copyright © 2011-2022 走看看