- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我很好奇,为什么稳定性在排序算法中重要或不重要?
最佳答案
如果具有相同键的两个对象出现在排序输出中的顺序与它们出现在要排序的输入数组中的顺序相同,则称排序算法是稳定的。有些排序算法本质上是稳定的,如插入排序、归并排序、冒泡排序等,而有些排序算法则不稳定,如堆排序、快速排序等。
背景:“稳定”排序算法使具有相同排序键的项目按顺序排列。假设我们有一个包含 5 个字母的单词列表:
peach
straw
apple
spork
如果我们仅按每个单词的第一个字母对列表进行排序,那么稳定排序会产生:
apple
peach
straw
spork
在不稳定排序算法中,straw
或spork
可以互换,但在稳定算法中,它们保持相同的相对位置(也就是说,由于 straw
在输入中出现在 spork
之前,所以它在输出中也出现在 spork
之前)。
我们可以使用此算法对单词列表进行排序:按第 5 列稳定排序,然后是第 4 列,然后是第 3 列,然后是第 2 列,然后是第 1 列。最后,它会被正确排序。说服自己。 (顺便说一句,该算法称为基数排序)
现在回答您的问题,假设我们有一个名字和姓氏列表。我们被要求“按姓氏,然后按名字”排序。我们可以先按名字排序(稳定或不稳定),然后按姓氏排序。在这些排序之后,列表主要按姓氏排序。但是,如果姓氏相同,则按名字排序。
您不能以相同的方式堆叠不稳定的排序。
关于algorithm - 什么是排序算法的稳定性,为什么它很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1517793/
1、什么是 MTTR ? 当系统出现系统故障时,我们需要通过一些指标来衡量故障的严重程度和影响范围。其中MTTR(Mean Time To Repair 名为_平均修复时间_)是一个非常重要
我知道如何通过添加到元素 -max _i x_i 来使 softmax 稳定。这避免了上溢和下溢。 现在,记录此日志可能会导致下溢。 log softmax(x) 可以计算为零,导致 -infinit
我试图理解这两个 numpy 傅立叶变换之间的区别: import numpy as np samples = 256 # define the domain in slightly differen
背景 线上故障是技术成长中不可避免的一部分,我们从中能够吸取宝贵的教训并变得越来越有经验。然而, 并非每个团队或技术同学都能以合理和科学的方式处理故障 。基于日常实际工作经验和个人心得,我整理了
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
一般场景 使用 dlsym(),我从我的主线程动态加载一个共享对象插件。 我遵循这两种方式中的任何一种。 方式A 将指向符号的指针结构传递给插件,以便它可以调用主机的函数并访问其他变量,当然知道它们的
我在 xaml 编辑器中遇到稳定性问题。每天重启 VS 25 次变得乏味。是否有可以最大限度地减少问题的策略或提供视觉显示的开源替代方案?任何帮助将不胜感激!我不想跳出窗外,但我会……我会! 最佳答案
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
假设我有一个给定的集合。在不以任何方式更改集合的情况下,我使用 foreach 循环遍历其内容两次。排除宇宙射线等等,绝对保证两个循环中的顺序一致吗? 或者,给定一个 HashSet对于许多元素,什么
我的应用程序的下一个版本大约有 70K 方法。 了解使用 Multidex 的确切含义(这通常意味着使用 Multidex 支持库来支持 API<21)对我做出这个决定很重要: 我应该付出很多努力(即
我得到的错误与 Missing an output location for shuffle 相同在 Spark SQL 中加入大数据帧时。那里的建议是设置 MEMORY_AND_DISK 和/或 s
我只是installed DCEVM在我的开发机器上 hotswap agent它似乎运作良好。DCEVM 看起来像是 JRebel/LiveRebel 的替代品。也在生产系统上。 DCEVM 和热插
我只是想知道是否有人可以解释为什么我的谷歌地图服务会出现 403 Forbidden 错误。 我一直在加载 map api: 然后使用地理编码和自动完成库将用户搜索转换为坐标,以显示在我的搜索结果的
我支持使用平面文件(纯文本)实现持久性的遗留 Java 应用程序。由于应用程序的性质,这些文件的大小每天可以达到 100 MB,而应用程序性能的限制因素通常是文件 IO。目前,该应用程序使用普通的 j
我是一名优秀的程序员,十分优秀!