互聯網筆試機試經典--楊氏矩陣查找

定位法,時間複雜度O(m+n)。首先直接定位到最右上角的元素,再配以二分查找,比要找的數(6)大就往左走,比要找數(6)的小就往下走,直到找到要找的數字(6)爲止,如下圖所示:


//楊氏矩陣查找
int col = 4;
int row = 4;
bool young(int array[][col],int search)
{
	int i = 0, j = col - 1;
	int var = array[i][j];
	while (true)
	{
		if (var == search)
			return true;
		else if (var < search && i < row - 1)
			var = array[++i][j];
		else if (var>search && j>0)
			var = array[i][--j];
		else
			return false;
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章