当前位置: 首页 > 面试题库 >

Java Collections.sort(nodes)使用哪种排序?

方季同
2023-03-14
问题内容

我认为这是MergeSort,它是O(n log n)。

但是,以下输出不同意:

-1,0000000099000391,0000000099000427
1,0000000099000427,0000000099000346
5,0000000099000391,0000000099000346
1,0000000099000427,0000000099000345
5,0000000099000391,0000000099000345
1,0000000099000346,0000000099000345

我正在按顺序号对4个节点的节点列表进行排序,而排序正在进行6个比较。我很困惑,因为6>(4 log(4))。谁可以给我解释一下这个?

PS这是mergesort,但我仍然不明白我的结果。

谢谢大家的回答。谢谢汤姆纠正我的数学。


问题答案:

O(n log n)并不意味着比较次数将等于或小于n log n,只是花费的时间将成比例地 缩放 到n log
n。尝试对8个节点,16个节点或32个节点进行测试,并检查时序。



 类似资料:
  • 问题内容: 使用哪些IDE(“ GUI /编辑器”)进行Python编码? 问题答案: 或者,以纯文本格式:(也可以作为aa 屏幕截图获得) 缩略语: 我没有提到语法高亮之类的基础知识,因为我期望默认情况下这些。 这只是一份反映你的反馈和意见的清单,我不主张使用这些工具。当你继续发布答案时,我将不断更新此列表。 PS。你能帮我将上述编辑器的功能添加到列表中吗(例如自动完成,调试等)?

  • 本文向大家介绍请问稳定排序哪几种?相关面试题,主要包含被问及请问稳定排序哪几种?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序 参考回答: 1、快排算法 根据哨兵元素,用两个指针指向待排序数组的首尾,首指针从前往后移动找到比哨兵元素大的,尾指针从后往前移动找到比哨兵元素小的,交换两个元素,直到两个指针相遇,这是一趟排序,经常这趟排序

  • 问题内容: 我们仍处于项目的设计阶段,但我们正在考虑在嵌入式Linux内核上具有三个独立的进程。进程之一是通信模块,该模块处理通过各种介质往返于设备的所有通信。 其他两个过程将需要能够通过通信过程发送/接收消息。我正在尝试评估Linux提供的IPC技术。其他进程将发送的消息的大小将有所不同,从调试日志到流媒体,速率约为5 Mbit。同样,媒体可能同时流进和流出。 您将为该应用建议哪种IPC技术?

  • 我正在尝试在Ubuntu 16.04上安装Caffe。因为我想将它与OpenPose一起使用,所以我不想使用Anaconda来安装Caffe。在安装了很多Caffe依赖项(在线学习多个教程)后,我发现原型buf是使用python安装的: $pip显示协议 名称:协议 版本:3.6.1 摘要:协议 缓冲区主页:https://developers.google.com/protocol-buffer

  • CLUSTER NODES 列出集群包含的各个节点, 以及这些节点的基本信息: 127.0.0.1:7711> CLUSTER NODES de0a573aae684388a0a6efc90c41c7bd571ff981 127.0.0.1:7713 noflags 0 1430839655355 connected 6c56c20d868d76ab199b8d1ea23a99db7ee2a8e2

  • 问题内容: Go是一种垃圾回收语言: http://golang.org/doc/go_faq.html#garbage_collection 在这里,它说这是一个标志性的垃圾回收器,但是它没有深入研究细节,并且正在进行替代…但是,自Go发行以来,该段似乎没有太多更新。 它仍然是标记和扫描?是保守还是精确?它是世代相传的吗? 问题答案: Go 1.4+垃圾收集器的计划: 混合世界/并发收集器 截止