經典演算法蒐集

2021-06-20 09:50:50 字數 612 閱讀 7380

一 遞迴演算法:

遞迴演算法條件:

1 該問題能夠被遞迴形式描述

2 存在遞迴結束的邊界條件。

優點:化繁為簡

缺點:遞迴是最慢的會發生重複計算,時間複雜度成指數級。

fibonacci數列:

f(1)=1,f(2)=2,f(n)=f(n-1)+f(n-2)(n>=3)

**演示:

/**

* f(1)=1,f(2)=2,f(n)=f(n-1)+f(n-2)(n>=3)

* 《功能詳細描述》

* @return

* @see [類、類#方法、類#成員]

*/public static long fibonacci(long num)

else

}

2 二分法查詢某個元素

前提:陣列或集合必須是有序的。

**如下:

public class binaryfind else 

mid = (start + end)/2;

}return -1;

}}

幾個主要演算法學習資料蒐集

1.分治法 如果網頁過時請搜尋 分治演算法基本思想和典型例題 2 動態規劃 有兩個比較好的部落格,但個人還沒有完全理解好,如網頁不可用,請搜尋 動態規劃 從新手到專家 如網頁不可用,請搜尋 通過金礦模型介紹動態規劃 如網頁不可用,請搜尋 動態規劃之01揹包問題 最易理解的講解 3 貪心法 馬踏棋盤演...

演算法 經典演算法

1 匹配演算法 匹配開始,從長的字串開始,匹配成功,長的和短的字串均向後匹配,而匹配失敗,則長的字串從開始的位置向後乙個字元,重新開始匹配,而短的字串則完全從頭開始。匹配演算法 param str1 長匹配字串 param str2 短的匹配字串 return 匹配成功 返回短字串在長字串開始的位置...

經典演算法 回溯演算法

回溯是遍歷搜尋空間所有可能組態的方法。這些組態也許代表物件的所有排列或這是構建物件集合的所有可能的方法 子集 其他情況包括列舉乙個圖的所有生成樹,兩個節點的所有路徑或是把節點分類成不同顏色的所有不同的方式。這些問題有乙個共同的難點就是我們必須每次產生乙個可能的組態。避免重複或遺漏組態的方法就是我們必...