2016 - 2024

感恩一路有你

汉诺塔递归算法图解 一道java面试题,20亿数字的文本排序,如何取前100?

浏览量:2349 时间:2021-03-12 11:21:06 作者:admin

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

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

借花献佛,把复杂的事情简单化。让我们借用电影《三个傻瓜制造宝莱坞》中的一句话吧!教授问牧场主(阿米尔汗)什么是机器?

那么什么是算法?

问题的解决方案是什么?比如我们用淘宝购物,天猫双11,人点击数亿次,服务器怎么能响应解决的是一个算法!例如,仓库里有许多机器人。机器人把货物打包并送到指定的地方。机器人和机器人不能互相争斗或谈判。路径规划是一种算法。例如,我们可以看到,解决无人驾驶汽车在道路上行走也是一种算法。比如,无人驾驶汽车在路上行走的解决方案也是一个算法今天的头条,我们看文章,看得越多,头条就向我们推荐相似的,这也是一个算法。。。。。还有很多。

凭直觉认知,什么构成算法?

算法是由代码序列表示的有序代码集。代码序列可以用任何高级语言开发,如C、C、C#、VB、python、Delphi等语言。

算法需要在早期阶段进行数学建模。该模型表达了一个求解问题的过程,过程有结果,过程是有效的,是有限的,不能无限循环。建模需要数学知识。

然后用计算机语言表示。

什么?那些数据结构都是计算机语言的知识

写算法真的是考验一个人的数据能力、数学思维、数学技能、数学、数学。我知道很多大牛都是数学专业的,然后做算法。以后真的很厉害。。。。。。

欢迎关注我

机器视觉相关专业发展,我每天头条都有很多机器视觉干货要分享。

汉诺塔递归算法图解 汉诺塔时间复杂度计算 汉诺塔问题时间复杂度分析

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