c++ 資料結構之水窪的數量演算法
題目: 有乙個大小為n*m的園子, 雨後起了積水. 八連通的積水被認為是連線在一起的. 請求出園子裡總共有多少水窪.
使用深度優先搜尋(dfs), 在某一處水窪, 從8個方向查詢, 直到找到所有連通的積水. 再次指定下乙個水窪, 直到沒有水窪為止.
則所有的深度優先搜尋的次數, 就是水窪數. 時間複雜度o(8*m*n)=o(m*n).
**:/*
* main.cpp
* * created on: 2014.7.12
*本欄目內容:
* awww.cppcns.comuthor: spike
*/
#include
#include
#include
#include
class program ;
void dfs(int x, int y)
public:
void solve() {
int res=0;
for (int i=0; ijjvsqpr; i++) {
for (int j=0; j
輸出:result = 3
本文標題: c++ 資料結構之水窪的數量演算法
本文位址:
資料結構 資料結構演算法
分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...
資料結構 c 排序演算法
排序是將乙個記錄的任意序列,重新排列成乙個按關鍵字有序的序列 按非遞減或非遞增 排序演算法按排序過程中依據的不同原則可以大致分為五類 插入排序 交換排序 選擇排序 歸併排序 基數排序。下面程式均使無序序列排序成非遞減序列。資料結構使用順序表,並初始化8個元素 49,38,65,97,76,13,27...
c 資料結構(1 2演算法)
程式 資料結構 演算法 可見演算法的重要程度。下面只從演算法的特性 演算法的評價標準和演算法的時間複雜度等三個方面進行介紹。乙個演算法應該具備以下 5 個特性 1 有窮性 finity 乙個演算法總是在執行有窮步之後結束,即演算法的執行時間是有限的。2 確定性 unambiguousness 演算法...