常用演算法思想

2021-07-30 13:35:17 字數 814 閱讀 2972

窮舉演算法是一種最簡單的演算法,其依賴於計算機的強大計算能力,來窮盡每一種可能的情況,從而達到求解問題的目的。窮舉演算法效率並不高,但是適合於一些沒有明顯規律可循的場合。在使用窮舉演算法時,要明確問題的大難的範圍,這樣才可以在指定範圍內搜尋答案。

最簡單的例子:雞兔同籠

在乙個籠子裡關注數隻雞和兔,共有35個頭,94隻腳,問:雞和兔各多少只?

package cyq1;

/**

* 雞兔同籠問題(窮舉演算法思想)

* 分析:可以判斷急的數量應該是在0到35只。這樣答案鎖定在了一定範圍內。

*/public

class

test_10 else

}static

int qiongju(int head,int feet)

}return re;

}}

遞推演算法是一種理性思維模式的代表,其根據已有的資料和關係,逐步推導而得到的結果。遞推演算法適合有著明顯公式的場合。

例子:斐波那契數列

package cyq1;

/**

* 遞推演算法思想

* 兔子序列(斐波那契數列)f(n)=f(n-2)+f(n-1),運用了遞迴公式來求解

*/public

class

test_11

//n表示時間

static

int getcount(int n)else

if (n>2) else

return

0; }

}

演算法常用思想

目錄演算法評價 使用程式解決乙個問題的一般步驟是分析問題,然後進行數學建模,再然後程式實現。那麼程式思想的核心是什麼呢?演算法 資料結構 程式語言 順推法從一種已知條件推導結果。逆推法從已知結果推到成初始化條件。遍歷每一種可能。什麼是遞迴?程式直接或間接的呼叫自身。將乙個大的問題分解成n個小的且相同...

演算法思想 滑動視窗思想

在解leetcode題的時候,遇到了幾個新的演算法思想,這個系列文章就把leetcode中的一些演算法思想做一些整理,包括老生常談的動態規劃,也包括我最新接觸的滑動視窗思想,並查集等,另外,遇到新的題目的時候也會在這裡做一些整理。起源 計算機網路協議 在介紹滑動視窗思想之前,首先介紹這個演算法思想的...

演算法思想 分治演算法

分而治之 大問題能夠拆成相似的小問題,記住這些小問題需要具有相似性。而後將小問題的每個解合成為大問題的解。所以說大問題如何拆,小問題如何合併才是這個演算法最主要的乙個思想。實際上很多演算法如貪心演算法,動態規劃等等都是要求把大問題拆成小問題。而分治演算法的重要一點就是要適用於能夠重新把小問題的解合併...