kmp算法next計算方法 KMP是什么意思?
KMP是什么意思?d.e.knuth、v.r.pratt和j.h.morris同時發(fā)現(xiàn)了一種改進的字符串匹配算法,稱之為Knut-morris-pratt操作(簡稱KMP算法)。那些研究過數(shù)據(jù)結(jié)構(gòu)的人
KMP是什么意思?
d.e.knuth、v.r.pratt和j.h.morris同時發(fā)現(xiàn)了一種改進的字符串匹配算法,稱之為Knut-morris-pratt操作(簡稱KMP算法)。
那些研究過數(shù)據(jù)結(jié)構(gòu)的人對KMP算法印象深刻。尤其是新手,很難理解其含義,困惑不解。今天,我們要面對它。如果我們不徹底理解它,我們永遠不會停止。
現(xiàn)在大家基本上都用嚴為民老師的書,我就用它來講解KMP算法。)我在準備考研。為了節(jié)省時間,我省略了課本上的許多單詞。我以后再補。!Yan Lao的數(shù)據(jù)結(jié)構(gòu)討論了第79頁的基本匹配方法,這是基礎(chǔ)。我們直說吧。
在介紹KMP算法的開始,我們給出了一個例子,讓我們對KMP的基本思想有了初步的了解。目的是指出“因此,在整個匹配過程中,I指針沒有回溯”。
你為什么要學(xué)算法?
算法,其實就是解決問題的方法。學(xué)習(xí)算法是學(xué)習(xí)前人解決問題的方法。為什么要學(xué)習(xí)算法?想要在編程道路上走得更遠的程序員可能需要學(xué)習(xí)算法。我記得在軟件工程中,程序是數(shù)據(jù)結(jié)構(gòu)算法,這說明了算法對程序的重要性。
許多初級業(yè)務(wù)系統(tǒng)程序員可能不會使用很多數(shù)學(xué)公式,但這并不意味著他們不使用算法。算法代表了數(shù)學(xué)對于計算機的重要性,對于圖形和圖像、人工智能等方面來說,數(shù)學(xué)基礎(chǔ)不好,不懂的算法可以說是很難的。
即使你不是程序員,你也應(yīng)該學(xué)習(xí)更多關(guān)于算法的知識。一方面有助于思維訓(xùn)練,另一方面也有助于解決生活中的實際問題。例如:用矩陣解方程。
每個人學(xué)習(xí)算法的目的可能不同,但算法對學(xué)習(xí)者的實際好處是相同的。
對于軟件工程師來說,如何平衡學(xué)習(xí)技術(shù)的深度和廣度?
技術(shù)的深度和廣度相輔相成,相互促進。
通過增加深度,它可以幫助您通過類比學(xué)習(xí),加快您的廣度擴展。
例如,分布式系統(tǒng)。如果你了解分布式系統(tǒng)的原理,比如Kafka分區(qū)和主從備份。當您學(xué)習(xí)其他分布式系統(tǒng)(如Hadoop)的原理時,您將更容易理解其體系結(jié)構(gòu)設(shè)計。從本質(zhì)上說,他們有同樣的問題要解決。它們也是分布式系統(tǒng)的基本問題。
當您學(xué)習(xí)到一定的深度時,通過增加廣度,也將幫助您更深入地了解技術(shù)?;蛘呱厦娴睦?。在您了解了Kafka、Hadoop和etcd之后,您會發(fā)現(xiàn)對于同一個問題有不同的解決方案。它們適合不同的場景或有不同的優(yōu)點和缺點。
以JVM的GC為例,有幾種不同的算法。通過比較,可以加深認識,拓展思路。
最后,提高您的系統(tǒng)理解和設(shè)計能力。它還可以幫助你建立一個完整的知識體系。
我分享了很多分布式動畫視頻。特殊演示系統(tǒng)原理。歡迎收看。