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

来源:互联网 发布:mac windows 文件系统 编辑:程序博客网 时间:2024/05/18 01:33

//第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 0
原创粉丝点击