Solution #1: Imagine that the matrix is sorted in ascending order for both row and column. Here is the code,
int find(int arr[][5], int size, int num) { int row=size-1; int col=0; while((row > 0) && (col < size)) { if(arr[row][col] == num) return 1; else if(arr[row][col] < num) col++; else row--; } return 0; } void main() { int arr[5][5] = {15, 25, 35, 45, 55, 16, 26, 36, 46, 56, 17, 27, 37, 47, 57, 18, 28, 38, 48, 58, 19, 29, 39, 49, 59}; int row=0; int col=0; if(find(arr, 5, 24)) printf("FOUND!!\n"); else printf("NOT FOUND!!\n"); /*for(row=0; row < 5; row++) { for(col=0; col < 5; col++) printf("%d ", arr[row][col]); printf("\n"); }*/ }
No comments:
Post a Comment