從二維陣列中查詢乙個數,判斷是否存在

2021-10-23 10:35:26 字數 977 閱讀 4429

乙個二維陣列,沒每一行都按照從左到右遞增的順序排序,每乙個列都按照從上到下遞增的排序,設計乙個函式,輸入乙個這樣的陣列和乙個整數,判斷陣列中是否含有該整數。

例如下面陣列,查詢數字7返回true,查詢5,返回false

1,2,8,9

2,4,9,12

4,7,10,13

6,8,11,15

一種思路,先查詢第一行,使用二分查詢判斷是否存在,如果存在則通過引數found返回true,如果不存在,返回行裡最大小於查詢數的列號,如查詢的是7,第一行不存在,那麼返回2所在的下標。之後根據列號查詢,如果存在則返回true,不存在則返回false,end。

#include using namespace std;

//先找列

int findcolumn(int matrix[4],int row,int& columns,int& number,bool& found)

else if(matrix[row][start]>number)

column=0;

while(start<=end)

else if(matrix[row][mid]>number)

else if(matrix[row][mid]=0 && rows>0)

else if(matrix[end][column]number)

else if(matrix[mid][column]}

}return row;

}bool find(int matrix[4],int rows,int columns,int number)

int main(),,,};

bool found_5=find(matrix,4,4,5);

cout<<"found_5="

cout<<"found_7="

};

在乙個二維陣列中查詢乙個數

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。int juge int matrix,int xlen,int ylen,int key xlen 表示列的數,ylen表示行數 i...

判斷乙個二維陣列的資料是否在另外乙個二維陣列裡重複

當我最先碰到這個問題是工作中批量匯入資料,防止裡面有資料跟資料庫裡原有的重複。大多數人想到的是挨個迴圈對比,感覺這樣速度有點慢,所以根據php函式來解決的 new cand idcard array column cands,cand idcard array column 先把要匯入的二維陣列,根...

二維陣列中查詢某個數是否存在

問題描述 在乙個二維陣列中,每一行按照從左道右遞增的順序排列,每一列按照從上到下遞增的順序排列。給定乙個數值,判斷二維陣列中是否存在這個數字。思路分析 首先選取陣列中右上角的數字,如果該數字等於要查詢的數字,查詢過程結束 如果小於要查詢的數字,那麼去除這個數字所在的列 如果大於要查詢的數字,那麼去除...