二維陣列中的查詢 楊氏矩陣

2021-07-13 08:53:28 字數 825 閱讀 5726

二維陣列中的查詢,楊氏矩陣

題目:在乙個二維陣列中,每行都按照從左到右的遞增的順序排序。每列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個陣列和乙個數,判斷陣列中是否包含這個數。

例如:二維陣列

1 2 3

4 5 6

7 8 9

查詢數字7.

注意:此題不是簡單的便利整個陣列進行查詢,此法效率較低,根據楊氏矩陣的特點(每行都按照從左到右的遞增的順序排序。每列都按照從上到下遞增的順序排序)進行不斷縮小查詢範圍的形式進行查詢。**如下:

#include#include#define line 3

#define list 3

void bulid(int str[line][list],int find)

return 0;

}return -1;

}int main()

; int i,j,find,num,var;

printf("請輸入二維陣列第乙個值和需要查詢的數字》\n");

scanf("%d%d",&num,&find);

str[0][0]=num;

bulid(str,find);

var=search(str,find);

if(var==1)

printf("exist %d\n",find);

else 

printf("not exist %d\n",find);

system("pause");

return 0;

}

本文出自 「scen」 部落格,請務必保留此出處

二維矩陣(楊氏矩陣)查詢

定義 從左到右,從上到下,依次增大 查詢某元素 假設矩陣為 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 在裡面查詢7,如果我們從1開始,則1的右半部分,也就是剩下矩陣的全體,都可能會存在7,這是顯然不行的,我們要確定乙個確切的查詢規則,它沿著特定路線走,最後找到 我們看...

楊氏陣列(矩陣)查詢

題目描述 有乙個二維陣列 矩陣 每一行元素從左往右依次增大,每一列元素從上往下依次增大,即表示為table i j 由於矩陣按行序和列序分別都是增加的,那麼,我們只需要每次和當前行或者列中最大的元素進行比較即可,若是要搜尋的數大於當前行列中最大的元素,那麼,直接跳到下一行列在此迴圈比較,逐步縮小查詢...

二維陣列中查詢

1.問題描述 在乙個二維陣列中,每一行按照從左到右的遞增順序排序,每一列按照從上到下的遞增的順序排序,請完成這樣乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列是否含有該整數。來自 劍指offer 2.分析 首先選取陣列中右上角的數字。如果該數字等於要查詢的數字,查詢過程結束 如果該數字大於要查...