資料結構演算法題 有序矩陣查詢

2021-09-03 02:13:03 字數 591 閱讀 6102

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

例如下面的二維陣列就是每行、沒列都遞增排序。如果在這個陣列中查詢數字7,則返回true(找得到);如果查詢數字5,由於陣列不含該數字,則返回false。12

8924

91247

101368

1115

解決思路

* 從右上角開始查

* 如果當前數小於需要查詢數字a,那麼刪除這一列

* 如果當前數大於需要查詢數字a,那麼刪除這一行

public class matrixsearch

else if(num[row][column] >number)

else}}

return found;

}public static void main(string args) ,,,};

boolean isin = matrixsearch.find(matrix, 10);

system.out.println(isin);

}}

資料結構 有序表查詢

對於已經排好序的表,有 在有序表中,取中間的記錄進行比較,如果相同,匹配成功。如果比中間值小,就在中間記錄的左半區進行查詢,如果大,就在右半區。public static intbinarysearch int key return 1 插值查詢是對折半查詢的改進。折半時 mid l ow h ei...

資料結構查詢演算法

又叫線性查詢,是一種基本的查詢演算法。查詢過程 從表中第乙個 或最後乙個 記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,如果查詢到表中最後乙個元素,還沒有找到,則查詢不成功。public intsearch int array int key return ...

資料結構 有序表查詢及實現

折半查詢 binary search 又稱為二分查詢。它的前提就是u是線性表中的記錄必須有序的,線性表必須採用順序儲存。折半查詢的基本思想 在有序表中,取中間記錄作為比較物件,若給定值與中間記錄的關鍵字相等,則查詢成功 若給定值小於中間記錄的關鍵字,則在中間記錄的左半區繼續查詢 若給定值大雨中間記錄...