二维数组的对角搜索C++

1.需求与分析

在一个二维数组中,每一行按照从左到右递增的顺序进行排序,每一列按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否存在这个整数。


2.代码

#include<iostream>
using namespace std;

bool find(int* matrix, int rows, int columns, int number)
{
	int resTemp = false;
	if (matrix != NULL && rows > 0 && columns > 0)
	{
		int row = 0;
		int column = columns - 1;
		while (row < rows && columns >= 0)
		{
			if (matrix[row*columns + column] == number)
			{
				resTemp = true;
				break;
			}
			else if (matrix[ row * columns + column] > number)
				column--;
			else
				row++;
		}
	}

	return resTemp;
}

int main()
{
	int nMatrix[16]= {  1, 2, 8, 9 , 2, 4, 9, 12 , 4, 7, 10, 13 ,  6, 8, 11, 15 };
	int nNumber = 100;
	cout << find(nMatrix, 4, 4, nNumber) << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/shenziheng1/article/details/80199915