漢諾塔遞歸算法圖解 一道java面試題,20億數(shù)字的文本排序,如何取前100?
一道java面試題,20億數(shù)字的文本排序,如何取前100?因為這是一個Java問題,所以這是典型的TOPK問題。首先取前100個數(shù)字構建一個最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時調整堆。堆中最
一道java面試題,20億數(shù)字的文本排序,如何取前100?
因為這是一個Java問題,所以這是典型的TOPK問題。首先取前100個數(shù)字構建一個最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時調整堆。堆中最后100個元素就是結果??臻g的復雜度是k,時間的復雜度是nlogk
借花獻佛,把復雜的事情簡單化。讓我們借用電影《三個傻瓜制造寶萊塢》中的一句話吧!教授問牧場主(阿米爾汗)什么是機器?
那么什么是算法?
問題的解決方案是什么?比如我們用淘寶購物,天貓雙11,人點擊數(shù)億次,服務器怎么能響應解決的是一個算法!例如,倉庫里有許多機器人。機器人把貨物打包并送到指定的地方。機器人和機器人不能互相爭斗或談判。路徑規(guī)劃是一種算法。例如,我們可以看到,解決無人駕駛汽車在道路上行走也是一種算法。比如,無人駕駛汽車在路上行走的解決方案也是一個算法今天的頭條,我們看文章,看得越多,頭條就向我們推薦相似的,這也是一個算法。。。。。還有很多。
憑直覺認知,什么構成算法?
算法是由代碼序列表示的有序代碼集。代碼序列可以用任何高級語言開發(fā),如C、C、C#、VB、python、Delphi等語言。
算法需要在早期階段進行數(shù)學建模。該模型表達了一個求解問題的過程,過程有結果,過程是有效的,是有限的,不能無限循環(huán)。建模需要數(shù)學知識。
然后用計算機語言表示。
什么?那些數(shù)據(jù)結構都是計算機語言的知識
寫算法真的是考驗一個人的數(shù)據(jù)能力、數(shù)學思維、數(shù)學技能、數(shù)學、數(shù)學。我知道很多大牛都是數(shù)學專業(yè)的,然后做算法。以后真的很厲害。。。。。。
歡迎關注我
機器視覺相關專業(yè)發(fā)展,我每天頭條都有很多機器視覺干貨要分享。