二維數組中查找某個數
一、引言在日常編程中,經常會遇到在二維數組中查找特定數值的需求。本文將介紹一種高效且可靠的算法,以及提供一些實際示例來幫助讀者理解。二、算法思路1. 從二維數組的右上角開始,設定初始位置為 (0, c
一、引言
在日常編程中,經常會遇到在二維數組中查找特定數值的需求。本文將介紹一種高效且可靠的算法,以及提供一些實際示例來幫助讀者理解。
二、算法思路
1. 從二維數組的右上角開始,設定初始位置為 (0, columns-1),其中 columns 表示數組列數。
2. 將當前位置的數值與目標數值進行比較:
- 如果當前位置的數值等于目標數值,則返回 true。
- 如果當前位置的數值大于目標數值,則向左移動一列。
- 如果當前位置的數值小于目標數值,則向下移動一行。
3. 重復步驟 2,直到達到數組邊界或找到目標數值為止。
三、示例代碼
以下是一個實際的示例代碼,演示如何在二維數組中查找目標數值。
```python
def search_in_2d_array(matrix, target):
if not matrix or not matrix[0]:
return False
rows, columns len(matrix), len(matrix[0])
row, column 0, columns - 1
while row < rows and column > 0:
if matrix[row][column] target:
return True
elif matrix[row][column] > target:
column - 1
else:
row 1
return False
# 示例測試
matrix [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
target 5
result search_in_2d_array(matrix, target)
print(result) # 輸出:True
```
四、總結
本文介紹了一種高效且可靠的算法來在二維數組中查找目標數值。通過從右上角開始逐步縮小搜索范圍,可以在時間復雜度為 O(m n) 的情況下找到目標值,其中 m 和 n 分別表示數組的行數和列數。
希望通過本文的講解與示例代碼,讀者能夠掌握在二維數組中查找數值的方法,并能夠運用于實際問題解決中。