乙個二維陣列,沒每一行都按照從左到右遞增的順序排序,每乙個列都按照從上到下遞增的排序,設計乙個函式,輸入乙個這樣的陣列和乙個整數,判斷陣列中是否含有該整數。
例如下面陣列,查詢數字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 先把要匯入的二維陣列,根...
二維陣列中查詢某個數是否存在
問題描述 在乙個二維陣列中,每一行按照從左道右遞增的順序排列,每一列按照從上到下遞增的順序排列。給定乙個數值,判斷二維陣列中是否存在這個數字。思路分析 首先選取陣列中右上角的數字,如果該數字等於要查詢的數字,查詢過程結束 如果小於要查詢的數字,那麼去除這個數字所在的列 如果大於要查詢的數字,那麼去除...