热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入理解排序算法:集合1(编程语言中的高效排序工具)

了解你的排序算法|集合 1(编程语言使用的排序武器)原文:https://www . geesforgeks . org/kno

了解你的排序算法|集合 1(编程语言使用的排序武器)

原文:https://www . geesforgeks . org/know-sorting-algorithm-set-1-sorting-arms-used-programming-languages/

有没有想过我们在 C++/Java 中使用的 sort()函数或者 Python 中的 sorted()函数是如何在内部工作的?

这里列出了不同编程语言的所有内置排序算法以及它们在内部使用的算法。


  1. Qport () of C– Quick sort

    • Optimal case time complexity-O(NlogN)

    • Average case time complexity-O(NlogN)

    • Worse case time complexity-O(N2)

    • Auxiliary space-O(log N)

    • Stable-depends on the implementation of the comparator function.

    • Adaptive-none



堆排序

插入排序


  • Optimal case time complexity-O(NlogN)

  • Average case time complexity-O(NlogN)

  • Worse case time complexity-O(NlogN)

  • Auxiliary space-O(logN)

  • Stable-none

  • Adaptive-none


  • Auxiliary space-O(N) Stable.-Yes Adaptive.-Yes Java 6 的数组。sort()–快速排序T3】*


    • Optimal case time complexity-O(NlogN)

    • Average case time complexity-O(NlogN)

    合并排序

    插入排序


    • Optimal case time complexity-O(N)

    • Average case time complexity-O(NlogN)

    • Worse case time complexity-O(NlogN)

    • Auxiliary space-O(N)

    • Stable.-Yes

    • self-adaption

    • Auxiliary space-O(N)

    • Stable.-Yes

    • Adaptive.-Yes


    • Sorted ()–timsort of Python (mixed merge sort and insert sort )


    • Optimal case time complexity-O(N)

    合并排序

    插入排序


    • Optimal case time complexity-O(N)

    • Average case time complexity-O(NlogN)

    • Worse case time complexity-O(NlogN)

    • Auxiliary space-O(N)

    • Stable.-Yes



在接下来的几集里,我们将实现 Introsort ( C++的排序武器)和 Sleep sort、Gnome Sort 以及其他非常规的排序算法。

本文由拉希特·贝尔瓦亚尔供稿。如果你喜欢极客博客并想投稿,你也可以写一篇文章并把你的文章邮寄到 review-team@geeksforgeeks.org。看到你的文章出现在极客博客主页上,帮助其他极客。

如果您发现任何不正确的地方,或者您想分享更多关于上面讨论的主题的信息,请写评论


推荐阅读
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
author-avatar
mobiledu2502887427
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有