對演算法的理解

2021-05-28 15:18:04 字數 370 閱讀 3381

明白了一些,資料結構與演算法,我覺得這應該是兩門科學吧

資料結構裡面有陣列,鍊錶,二叉樹,圖,佇列,棧,堆。這都是對c語言的,c++的我就不清楚了。

演算法有回溯法,像n-皇后問題

分治法: 像二分查詢,快速排序

貪心法: 希望每一步的決策都是正確的,但是這僅是區域性的,結果可能並不是最優的,但是離最優也不遠了

像 最小代價生成樹裡面的普利姆演算法,克魯斯卡爾演算法

單源最短路徑裡面的迪傑斯特拉演算法

動態規劃法: 弗洛伊德演算法, 0/1揹包

雖然都不是很清楚,但是最起碼要知道。可是看到大公司的面試題,仍舊不會啊,好像也不是用的這裡面的方法,所以說編**的是博大精深啊,都是用到的時候才發現

早發現就好了。

對Vector Clock演算法的理解

vectorclock演算法 也稱為version vector 是最為常見的用來進行副本管理和衝突發現的演算法。該演算法使用所含元素個數與副本節點數相等的陣列來記錄每個資料物件在不同副本節點的變化。每乙個副本節點si對應陣列中的乙個元素i,每個元素有乙個計數器,用來記錄在副本節點si上對資料物件的...

對KMP演算法的理解

kmp演算法是一種高效的模式匹配演算法,複雜度可以達到o m n 而普通模式匹配演算法的複雜度為o m n 普通模式匹配演算法 從主串的第乙個字元 或者給定的第pos個字元 開始和子串的第乙個字元開始比較,若相等,則繼續比較後面的字元。若不相等,則從主串本次開始比較的字元的下乙個字元開始,與子串的第...

對KMP演算法的理解

kmp演算法是一種高效的模式匹配演算法,複雜度可以達到o m n 而普通模式匹配演算法的複雜度為o m n 普通模式匹配演算法 從主串的第乙個字元 或者給定的第pos個字元 開始和子串的第乙個字元開始比較,若相等,則繼續比較後面的字元。若不相等,則從主串本次開始比較的字元的下乙個字元開始,與子串的第...