给定二维数组在m+1次比较次数内找到所查找的数所在位置

//第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 列
请按任意键继续. . .



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值