2016 - 2024

感恩一路有你

c语言链表排序算法 一道java面试题,20亿数字的文本排序,如何取前100?

浏览量:2842 时间:2021-03-13 17:22:23 作者:admin

一道java面试题,20亿数字的文本排序,如何取前100?

因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度是k,时间复杂度是nlogk

我猜你问过人们JDK各种数据结构的底层实现原理。事实上,我一直很困惑。了解基本的实现原则是可以的,但是如果你不太了解,那又怎样呢?人们知道哪些数据结构适用于哪些场景,并且能够熟练地使用它们。那不是。。。够了吗?对贵公司的需求不足吗?你希望他为你的公司创建一个新的数据结构吗?就像two peas或JDK一样,JDK的数据结构性能遇到了瓶颈,求职者会给你提供比工作提供的数据结构更好的数据结构。

面一个5年java,不知数据结构,却大谈分布式,这样的能要吗?

算法当然不是最重要的,这在大多数情况下都是正确的。你的上司基本上是对的。

作为一名技术人员,您的工作目标是什么?首先是满足商业需求。技术总监关心进度、质量、成本、风险等因素。至于算法,在他看来,可能只是锦上添花。例如,系统设计所需的响应时间为3秒,目前为2秒。您已经通过算法优化实现了1秒,但这并没有改变项目的性能。

业界有句好话,没有商业讨论的技术是在耍流氓。当你单独谈论算法时,你也被怀疑是在耍流氓。作为一个程序员,首要考虑的是满足需求。至于算法和实现,可能有一百种。

现在大多数程序员只需调用现有代码库中的方法,这些类库中的大多数都可以满足要求。您不需要实现链表、二叉树和新的排序算法。利用这些现有的代码库,我们可以用多种方法来实现函数,所以所谓的算法就不那么重要了。

因此,您应该首先对需求有深入的了解,然后实施它。然后我们考虑了算法问题。这应该是你们大副的意图。

c语言链表排序算法 对链表进行排序 链表快速排序

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。