查找就二分查找有点技术含量吧

题目描述:

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数

基本思路:

二分查找一般适用于已经排序好了的数列。
将要查找的数跟中间的数进行比较。若大于中间的数,就重复后面1/2段;若小于中间的数,就重复前面1/2段。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
Created on 2017年12月5日
@author: Scorpio.Lu
**/
public static int find(int[] data,int key){
int low=0,high=data.length;
while(low<high){
int mid=(low+high)/2;
if(data[mid]<key){
low=mid+1;
}
else if(data[mid]>key){
high=mid;
}
else{
return mid;
}
}
return -1;
}

作者 [Scorpio.Lu]
2017 年 12 月 5 日
转载请注明出处!