有序陣列中兩個數的和等於乙個輸入值的函式

2021-07-02 05:45:20 字數 634 閱讀 9310

輸入乙個已經按公升序排序過的陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度為o(n).

如果有多對數字的和等於輸入的數字,輸出任意一對即可。

例如輸入陣列1,2,4,7,11,15和數字15,由於4+11=15,因此輸出4和11.

**如下:

/*data 為有序陣列,

length 為陣列的長度

sum為使用者輸入的和

num1 為符合和等於sum的第乙個數

num2 為第二個數*/

#include

using namespace std;

bool findtwonumberswithsum(int data, unsigned int length, int sum, int& num1, int& num2)

else if (cursum > sum)

end--;

else begin++;

}return found;

}int main()

;if (findtwonumberswithsum(a, 6, 15, x, y))

return 0;}

將兩個陣列並為乙個有序陣列

將兩個陣列並為乙個有序陣列 include define n 6 陣列列印函式 void print int x printf n 氣泡排序函式 void bubble sort int x 判斷資料的大小順序 int judgment order int x if 1 flag 如果原始資料不是從...

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

題目 有兩個陣列a和b,將它們合併成陣列c,需要c也是有序陣列。有兩種實現思路 定義乙個新陣列,長度為兩個陣列長度之和,將兩個陣列都copy到新陣列,然後排序。給兩個陣列分別定義乙個下標,最大長度是陣列長度減一,按位迴圈比較兩個陣列,較小元素的放入新陣列,下標加一 注意,較大元素對應的下標不加一 直...

兩個有序陣列合併為乙個有序陣列

思想 先依次比較兩個陣列,按照小的就傳入新的陣列。當這次比較完之後可能有乙個陣列的長度很長,留下一些陣列,然後在新陣列的末尾插入即可。1 class arraysort 2else 1920 後面連個while迴圈是用來保證兩個陣列比較完之後剩下的乙個陣列裡的元素能順利傳入 21 while i a...