演算法9 在乙個迴圈有序的陣列裡查詢乙個數

2021-07-28 03:17:34 字數 793 閱讀 2185

採用中分方法進行查詢,考慮到是迴圈有序的陣列,存在一邊有序的情況,將中間值與最左邊值比較,檢視是否有序,則左有序,否則就是右有序。然後再確定待查詢值的區域。

//loopbuffer:迴圈有序陣列

//length:迴圈有序陣列長度

//value:待查詢的數

//return:返回待查詢數在陣列中的位置

int binarysearch(int* loopbuffer,int length, int

value)

int left = 0;

int right = length -1;

int mid = (left+right)/2;

while(left <= right)

if(loopbuffer[left]//左有序

else

}else

//右有序

else}}

return -1;

}

int _tmain(int argc, _tchar* argv)

; int i = 0;

int value = 0;

while(i < 10)

:">value;

cout

<<"pos = "

<10,value)<<"please input a value not in :"

>value;

cout

<<"pos = "

<10,value)0;}

演算法 合併兩個有序數組成乙個有序陣列

最近看到乙個演算法題目,覺得很有意義,就自己查資料,摸索著自己實現了 特記錄一下。題目 有兩個陣列a和b,將它們合併成陣列c,需要c也是有序陣列。有兩種實現思路 1.定義乙個新陣列,長度為兩個陣列長度之和,將兩個陣列都copy到新陣列,然後排序。2.給兩個陣列分別定義乙個下標,最大長度是陣列長度減一...

演算法 兩個有序陣列合併成乙個有序陣列

兩個有序陣列的合併函式 public static int mergelist int a,int b else 後面連個while迴圈是用來保證兩個陣列比較完之後剩下的乙個陣列裡的元素能順利傳入 while i result k a i while j result k b j return re...

乙個匹配String陣列裡的值的問題

今天在公司遇到了乙個小問題,公司給了乙個銀行列表,列表裡面的銀行都能與公司展開a業務 需求 列表裡面的銀行能呼叫a業務方法,列表裡面沒有的銀行 能呼叫b業務方法 這個問題雖然看起來很簡單,但是涉及到的知識點還是挺多的,下面直接上答案 public static void compare string...