C語言判斷楊氏矩陣中是否存在輸入的數

2021-10-07 10:45:21 字數 686 閱讀 5289

楊氏矩陣

題目內容 :

有乙個數字矩陣,矩陣的每行從左到右是遞增的,矩陣從上到下是遞增的,請編寫程式在這樣的矩陣中查詢某個數字是否存在。

楊氏矩陣是行上從左到右依次增大,列上從上到小依次增大。

該方法從右上角第乙個開始查詢,一次可以排除一行或者一列,所以大大提高效率。

#include

#include

#pragma warning(disable:4996)

intfind

(int a[

5],int row,

int col,

int target)

else

if(target > a[i]

[j])

else

}return-1

;}intmain()

,,};

printf

("請輸要比較的數:");

int x;

scanf

("%d"

,&x)

;int ret =

find

(a,3,5

, x);if

(ret ==1)

else

system

("pause");

return0;

}

在楊氏矩陣中判斷乙個數是否存在

楊氏矩陣是乙個二位陣列,這個陣列無論橫向縱向都是遞增的。比如陣列 1 4 7 2 5 8 3 6 9 要想時間複雜度小於o n 就不能遍歷整個陣列,其實只需判斷這個i行j列的陣列的arr i 1 j 1 是否等於要找的數,如果大於要找的數,說明要找的數一定在該數的左下方。如果小於要找的數,說明要找的...

C語言 在楊氏矩陣中查詢乙個數字是否存在

題目 有乙個二維陣列 楊氏矩陣 陣列的每行從左到右是遞增的,每列從上到下是遞增的。在這樣的陣列中查詢乙個數字是否存在。時間複雜度小於o n 此題的解決思路為 由於陣列的每行從左到右是遞增的,每列從上到下是遞增的,因此右上角的這個數為該數所在這一行最大的數,為該數所在這一列最小的數,我們以陣列右上角的...

C語言判斷檔案是否存在

用函式access,標頭檔案是io.h,原型 int access const char filename,int amode amode引數為0時表示檢查檔案的存在性,如果檔案存在,返回0,不存在,返回 1。這個函式還可以檢查其它檔案屬性 06 檢查讀寫許可權 04 檢查讀許可權 02 檢查寫許可...