最簡單的從頭開始對比查詢。
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 搜尋演算法,還得從啟發式搜尋演算法開始談起。所謂啟發式搜尋,就在於當前搜尋結點往下選擇下一步結點時,可以通過乙個啟發函式 來進行選擇,選擇代價最少的結點作為下一步搜尋結點而跳轉其上 遇到有乙個以上代價最 少的結點,不妨選距離當前搜尋點最近一次展開的搜尋點進行下一步搜尋 ...