確定公升序陣列中使得A i i 的整數i值

2021-07-29 20:34:38 字數 689 閱讀 7254

我在學習程式設計的過程中看過許多大佬們的csdn部落格,從中學到了很多,也想借助這個平台發一些自己練習寫的**。有可能的話藉此幫助其他有需要的同學,有dalao看見說不定也能指點我一二~(òωóױ) 畢竟想學到知識就得臉皮厚一點,我相信隨著dalao們的指點和自己學習,我的水平會慢慢提高的

題目要求輸出 乙個公升序陣列中使得a[i] = i 的i值。

這是一道很簡單的演算法題,遍歷的話時間複雜度是o(n),但是這樣的話,條件「公升序」就浪費掉了。

我的**如下

#include using namespace std;

int getx();

int choose(float array,int left,int right);

int size;

static int answer;

int array = ;

int choose(int array,int left,int right)else if(centre == right)

return -1;

if(array[centre] < centre)else

return (answer != -1)?answer:-1;

}int getx()

這段**可以返回第乙個遇到的符合條件的i值,但是如果有多個符合條件的i,也只會返回第乙個。

尋找公升序整數陣列中元素與對應下標相等的數

問題 給定乙個公升序的整數陣列a,讓你在陣列中找到任意下標x,使得a x x。陣列下標從0開始 例如 1,0,1,3,10 中,x 3即為所求。解析 最好想的思路就是遍歷整個陣列,這樣時間複雜度為o n 另一種解法 因為題目提示了是公升序的整數陣列a,那麼就要想到能不能用二分查詢的思想。假設我們有乙...

在公升序陣列中查詢和為特定值的兩個數

思路,從左和右同時遍歷陣列,如果左右相加大於n,則說明右邊的值偏大,則右指標左移 如果比n小,則左指標右移 總共對陣列只需要遍歷一遍。在乙個公升序陣列中查詢兩個數,使得他們的和為已知數n,時間複雜度o n 返回距離最近的一對 int find int array int len int n if a...

求兩個已排序 公升序 等長的整數陣列所有元素的中位數

演算法課的題目,給定兩個整數陣列x,y,兩個陣列已被排序 公升序 陣列長度都是n,求這2n個數的中位數。最容易想到的是,新建立以個陣列 z 2n 將x,y的所有元素排序放入,然後取中間兩個數,不過當陣列很大時,效率不行啊。不僅空間複雜度很大,重新排序的話也要不少時間.分析 因為兩個陣列已經排序了,可...