线性搜索与二分法搜索

来源:互联网 发布:数据服务平台 编辑:程序博客网 时间:2024/06/05 06:52
线性搜索即从数组一端开始遍历,直到找到元素返回或查找结束。
public int linearSearch(int searchKey){for (int index = 0; index<data.length; index++){if (data[index] == searchKey)return index;}return -1;}

二分法搜索要求数组有序,我们从数组中间开始,与所查元素进行比较,若所查元素较小,说明所查元素应该在数组的前半段(升序),于是在数组前半段再次进行二分法搜索。

public int binarySearch(int searchElement){int low = 0;int high = data.length-1;int mid = (low+high+1)/2;int location = -1;do{if (searchElement == data[mid])location = mid;else if (searchElement <data[mid])high = mid -1;elselow = mid + 1;mid = (low+high+1)/2;} while((low<=high)&&(location ==-1));return location;}


0 0
原创粉丝点击