學好演算法和資料結構,對提高業務開發程式設計能力有什麼直接關係嗎?

時間 2021-05-12 02:23:11

1樓:

如果你能忍受任意慢的業務,就可以不用學了。乙個最簡單的例子是用直接遞迴寫乙個斐波那契數列,求第 100 項,試試需要多長時間。

2樓:愛吃花椒的小龍

資料結構很重要

所有的問題歸根到底是時間複雜度和空間複雜度常規業務開發,你並沒有感到資料結構的重要性,那是因為你所使用的框架已經被別人封裝好了一些演算法,你只是調了個API而已

三個for迴圈的程式怎麼能和乙個for迴圈的程式一比高下一些新的演算法提出,不就是為了解決業務中乙個具體的問題,而發現問題的時間複雜度很高嗎(參考維特比演算法)

3樓:ing miss

比如說刷leetcode,crud的話其實沒太多作用,當然會這些東西肯定在一些問題的思考方面會和不會的人有點優勢,也就是套框架。

但通常說的crud決定了根本用不到比拼實力,認認真真把邏輯理清楚,問題就可以解決的很不錯了。

4樓:黃亮anthony

資料結構和演算法提供了一系列程式的思考模式。

業務不需要,但業務程式設計開發需要這種模式。

資料結構和演算法是拋開業務概念之後,業務程式設計開發剩下的那些東西。

不使用(所謂高階)資料結構和演算法,要麼是業務比較簡單,要麼是業務被程式設計開發地比較簡單。

後者,結果只能是不好用。

5樓:

相當有價值了。

如果你能夠熟練寫出那堆比較燒腦的演算法,寫更加簡單的那就容易多了。如果更難的都能寫對,那麼寫簡單的就更是基本不會出錯了。

這在實際開發中有極高的價值,就是你基本可以保障平常你設計的演算法沒有問題(實際業務問題的邏輯一般都比較簡單),從而省掉很多改bug的時間,就可以更快的幹完活,然後就可以水知乎了(請保持低調)。如果個人目標較高,則可以想辦法面上更牛的崗位,獲得更多的成長機會。

6樓:Karminski-牙醫

你輸入了「知」字,下拉出來的suggest結果就會推薦以「知」字為開頭的一些熱搜詞。

現在,資料部門每天都給你一批熱搜詞和權重,然後產品讓你實現這個功能。怎麼辦?

也許你會說,用正規表示式。的確,用正則能完成。但假設這個熱搜詞詞庫的量達到幾個GB的等級,用正則搜尋一次可能使用者都走了,web伺服器都超時了,你的程式都沒搜尋出來乙個結果....

那麼,遇到這種情況,學好資料結構和演算法的優勢就體現出來了。這種需求最簡單可以用字首樹來完成:

如圖,接到熱搜詞資料後,就把熱搜詞build成字首樹。當使用者輸入第乙個字的時候,直接hash到對應的樹的頂端,然後根據子節點的權重和檢索結果的數量需求直接遍歷樹即可。可以將檢索的範圍急劇縮小。

當使用者輸入第二個字的時候,直接將指標遊走到根節點的下乙個節點,然後同樣遍歷子節點即可。比如使用者打完了「知」那麼打「乎」的時候,需要遍歷的就是這部分了:

當然如果使用者輸入沒有命中的話,可以觸發召回邏輯,顯示其他熱搜詞。

用了這玩意,原本你需要幾分鐘的檢索結果,可能現在只需要不到10ms就能做到了。

這就是資料結構和演算法的魅力。

(注意,舉的例子完全沒有優化,實際上優化的空間有很多,可以進一步提公升效能或降低空間複雜度)

學習演算法和資料結構可以提高智商嗎?

空空已空空 哲學可以,看毛爺爺就知道了,那個黑格爾寫的邏輯學原版翻譯看懂了覺悟也不低,其實看書不停的思考才會提高智商,不思考無論什麼書都像八股一樣,中國很多大學生基本就這樣,沒什麼用 littledonkey2015 正在學習,感覺自己是智障 建立於2016.09.02 木兮木有 你覺得我智商在學完...

有哪些用 Python 語言講演算法和資料結構的書?

黃哥 黃哥 黃哥推薦的八本資料結構和演算法 Python描述 書。Data Structures and Algorithms in Python Data Structures and Algorithms Using Python and C Data Structures and Algori...

演算法和資料結構是否是屠龍之技?

演算法感覺本質是上是乙個管理學問題,資料結構就是部門分案。演算法研究就是不斷追求更好地分配執行單元的執行力,去解決巨集觀戰略問題。 拉勾教育 不知道你所說的 屠龍之技 是怎麼定義的。不過呢,我想說,資料結構與演算法的確是非常重要的。不會資料結構與演算法,你基本與大廠無緣了。在這個層面上,的確可以稱作...