二分法:
取陣列的兩個端點left,right,定義乙個mid=(left+right)/2表示中間元素。
比較需要查詢到元素與mid對應的數值大小,再根據其大小關係決定left,right的變化情況
#include#includeusing namespace std;
int cmp(int x,int y)
printf("%d\n",mid+1);
} return 0;
}
順序查詢:
這個的優點是不需要是必須已經排好序的陣列裡查詢
這個就是直接用迴圈乙個乙個比較就可以了
#includeusing namespace std;
int main()
cout<利用c++自帶的find函式:
#include#include#includeusing namespace std;
int main()
{ string a;
char x;
int n;
cin>>a;
cin>>x;
n=a.find(x,0);//利用c++自帶的函式查詢尋找目標第一次出現的下標,第乙個引數是查詢的元素,第二個引數是開始查詢的下標
cout<
演算法 查詢陣列中元素
查詢演算法 1.線性查詢 缺點 效率不高,通過遍歷迴圈,乙個個查詢比對。2.二分法 通過死迴圈不斷地將陣列一分為二,得到中間元素,然後目標元素與中間元素進行比對,當出位置等於末位置時,退出。缺點 侷限性很大,只能用於排好序了地陣列 public class search class mysearch...
二維陣列中元素的查詢
題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排列。求該二維陣列中是否存在給定數字number。解題思路 實現 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排列。求該二維陣列中是否存在給定數字number param...
Python演算法 分治法查詢陣列中元素最小最大值
給定陣列a1,a2,a3,an,找出陣列中最大值和最小值。陣列中兩兩各不相同 演算法思想類似於上圖,將陣列兩兩分為一組,如果陣列元素奇數個,就把最後乙個元素單獨分為一組,然後分別對每一組中相鄰兩個元素比較,把二者中值小的數放在陣列左邊,值大的數放在陣列右邊,只需比較n 2次就可以將陣列分組完成。這時...