演算法 五大經典搜尋演算法

2022-02-19 23:32:14 字數 850 閱讀 5468

最簡單的從頭開始對比查詢。

int binarysearch(int arr, int x, int len)

if(x > arr[mid])else

}return -1;

}

時間複雜度為o(1)

二叉樹的前序遍歷、中序遍歷、後序遍歷測試**如下:

package com.tree;

public class tree

system.out.print(node.getdata());

preorder(node.getleft());

preorder(node.getright()); }

public static void midorder(treenode node)

preorder(node.getleft());

system.out.print(node.getdata());

preorder(node.getright());

} public static void postorder(treenode node)

preorder(node.getleft());

preorder(node.getright());

system.out.print(node.getdata()); }

public static void main(string args)

}

程式執行及結果如下(修改了控制台字型使得中文亂碼):

五大經典演算法

據說有人歸納了計算機的五大常用演算法,它們是貪婪演算法,動態規劃演算法,分治演算法,回溯演算法以及分支限界演算法。雖然不知道為何要將這五個演算法歸為最常用的演算法,但是毫無疑問,這五個演算法是有很多應用場景的,最優化問題大多可以利用這些演算法解決。演算法的本質就是解決問題。當資料量比較小時,其實根本...

五大經典演算法之回溯法

回溯法,又稱為試探法,按選優條件向前不斷搜尋,以達到目標。但是當探索到某一步時,如果發現原先選擇並不優或達不到目標,就會退回一步重新選擇,這種達不到目的就退回再走的演算法稱為回溯法。與窮舉法的區別和聯絡 相同點 它們都是基於試探的。區別 窮舉法要將乙個解的各個部分全部生成後,才檢查是否滿足條件,若不...

A 搜尋演算法

啟發式搜尋演算法 要理解 a 搜尋演算法,還得從啟發式搜尋演算法開始談起。所謂啟發式搜尋,就在於當前搜尋結點往下選擇下一步結點時,可以通過乙個啟發函式 來進行選擇,選擇代價最少的結點作為下一步搜尋結點而跳轉其上 遇到有乙個以上代價最 少的結點,不妨選距離當前搜尋點最近一次展開的搜尋點進行下一步搜尋 ...