第三周作业——顺序查找和二分查找
来源:互联网 发布:淘宝联盟新号设置 编辑:程序博客网 时间:2024/05/19 00:52
/** * 二分查找又称折半查找,它是一种效率较高的查找方法。 【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 * @author Administrator * */ public class BinarySearch { public static void main(String[] args) { int[] src = new int[] {1, 3, 5, 7, 8, 9}; System.out.println(binarySearch(src, 3)); System.out.println(binarySearch(src,3,0,src.length-1)); } /** * * 二分查找算法 * * * * @param srcArray * 有序数组 * * @param des * 查找元素 * * @return des的数组下标,没找到返回-1 */ public static int binarySearch(int[] srcArray, int des){ int low = 0; int high = srcArray.length-1; while(low <= high) { int middle = (low + high)/2; if(des == srcArray[middle]) { return middle; }else if(des <srcArray[middle]) { high = middle - 1; }else { low = middle + 1; } } return -1; } /** *二分查找特定整数在整型数组中的位置(递归) */ public static int binarySearch(int[] dataset,int data,int beginIndex,int endIndex){ int midIndex = (beginIndex+endIndex)/2; if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){ return -1; } if(data <dataset[midIndex]){ return binarySearch(dataset,data,beginIndex,midIndex-1); }else if(data>dataset[midIndex]){ return binarySearch(dataset,data,midIndex+1,endIndex); }else { return midIndex; } } }
public class OrderSearch { /**顺序查找平均时间复杂度 O(n) * @param searchKey 要查找的值 * @param array 数组(从这个数组中查找) * @return 查找结果(数组的下标位置) */ public static int orderSearch(int searchKey,int... array){ for(int i=0;i<array.length;i++){ if(array[i]==searchKey){ return i; } } return -1; } /**测试查找结果 * @param args */ public static void main(String[] args) { int[] test=new int[]{1,2,29,3,95,3,5,6,7,9,12};//升序序列 int index=OrderSearch.orderSearch(95, test); System.out.println("查找到的位置 :"+ index); } }
0 0
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 第三周作业——顺序查找和二分查找
- 计科《算法设计与分析》第三周作业——顺序查找和二分查找
- 第三周作业 --------顺序查找和二分查找
- 第三周作业 --------顺序查找和二分查找
- 第三次作业——顺序查找,二分查找
- 顺序查找和二分查找
- 二分查找和顺序查找
- 顺序查找和二分查找
- 顺序查找和二分查找
- 顺序查找和二分查找
- 第二章作业
- 给Android应用开发者的十个建议
- 手机与pc USB连接adb socket通信
- NYOJ 16 矩形嵌套
- c++沉思录中代理类和c++primer中句柄类的对比
- 第三周作业——顺序查找和二分查找
- 齐次坐标
- 函数指针 - 一般情况和类的nonstatic成员函数
- LVS 之 RS 检测机制调整
- Ubuntu 配置Apache2虚拟目录及对应端口
- 【安卓逆向】继续学习,体验dalvik汇编语言,并且尝试编译运行成功!
- OpenCV笔记(三)基本数据结构
- Ubuntu下安装和配置Apache2
- 一周极客热文:Java 8简明教程