//第4题
#include<iostream>
using namespace std;
//折半查找
int BinInsertSort(int A[], int n,int x){
int i, j, low, high, mid;
for (i = 0; i < n; i++){
low = 0; high = n-1;
while (low <= high){
mid = (low + high) / 2;
if (A[mid]>x) high = mid - 1;
else low = mid + 1;
}
return low; //定位列
}
}
int LocxInArray(int A[][10], int m, int n, int x)
{
int i, j, col;
for (i = 0; i < m; i++)
{
if (A[i][0]<=x && A[i][n - 1]>= x) //判断x在某一行
{
int B[100]; //临时数组存放x所在行
for (j = 0; j < n; j++)
{
B[j] = A[i][j];
}
col=BinInsertSort(B, 10,x);
printf("x=%d 在第 %d行 第 %d 列\n", x, i+1, col);
return 0;
}
}
}
int main()
{
int A[2][10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
LocxInArray(A, 2, 10, 15);
return 0;
}
A[2][10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
<span style="white-space:pre"> </span>11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
x=15 在第 2行 第 5 列
请按任意键继续. . .