特殊矩阵的查找
给定一个整型5*6的矩阵,
A[5][6]= 1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
A中每一维方向上都按从小到大的顺序排列。编写一个查找函数,查找某元素在矩阵中的位置(该元素在矩阵中真实有点咸)。要求查找该元素时,在矩阵中的比较次数不超过5+6=11次。
输入
矩阵中的元素
输出
元素在矩阵中的行标、列标、比较次数
样例输入
9
样例输出
1 2 4
#include<stdio.h> int main() { int a[5][6] = { {1, 2, 3, 4, 5, 6}, {7, 8, 9, 10, 11, 12}, {13, 14, 15, 16, 17, 18}, {19, 20, 21, 22, 23, 24}, {25, 26, 27, 28, 29, 30} }; int i,j,sum,num; scanf("%d",&num); i = 0; j = 5; sum = 0; while(num > a[i][j]) { i++; sum++; while(num<a[i][j]) { j--; sum++; } } printf("%d %d %d\n",i,j,sum); return 0; }