二分查找已排序数组
来源:互联网 发布:java中mkar是什么意思 编辑:程序博客网 时间:2024/06/04 18:49
/** * 二分查找已排序数组比较简单,有递归方法和迭代方法,实现分别如下: * 他们的时间复杂度都为O(log n) * @author Administrator * */public class SearchSortedArray {/** * 递归法 * @param array * @param first * @param last * @param key * @return */public static int binnarySearch(int[] array, int first, int last, int key){int index = -1;int mid = (first + last)/2;if(first > last)index = -1;else if(key == array[mid])index = mid;else if (key < array[mid])index = binnarySearch(array, first, mid - 1, key);elseindex = binnarySearch(array, mid + 1, last, key);return index;}/** * 迭代方法 * @param array * @param key * @return */public static int binnaryIteratorsearch(int[] array, int key){int index = -1;int first = 0;int last = array.length - 1;while(first <= last){int mid = (first + last) / 2;if(key == array[mid]){index = mid;break;}else if(key < array[mid]){last = mid -1;}else{first = mid + 1;}}return index;}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[] sortedArray = {4, 10, 50, 54, 78, 90, 100, 150, 178, 221};int key = 90;int indexInArray = binnarySearch(sortedArray, 0, sortedArray.length, key);System.out.println("the index of key in sortedArray is: " + indexInArray);int indexInArr = binnaryIteratorsearch(sortedArray, key);System.out.println("the index of key in sortedArray is: " + indexInArr);}}
0 0
- 二分查找已排序数组
- 已排序二维数组中的二分查找
- 二分查找-针对已排序数组
- shell数组排序、二分查找
- 数组排序、求最值、二分查找
- 二分查找(折半查找) -- 已排序序列的查找算法
- 二分查找-两已排序数组中找中位数二题
- LeetCode基础-查找-排序数组二分查找
- 在已排序的数组中查找
- 二维数组已选择排序、折半查找
- 小米笔试:循环排序数组二分查找
- PHP 数组排序(冒泡排序、选择排序);数组查找(顺序查找、二分查找)
- 排序数组内的查找——二分查找
- 一维数组 冒泡排序 shell 排序 二分查找 C++
- Java二分法在已排序数组中查找指定数
- JAVA开发中已排序数组的查找方法
- 二分查找key值是否在排序数组中
- hiho1128 非有序数组的二分查找 (快速排序)
- HDU 2295 Radar( 二分+Dancing Links重复覆盖 )
- Hibernate映射解析——七种映射关系 .
- 树状数组区间求和的三种模型
- Bubble Sort冒泡排序
- SE16N与SE16区别
- 二分查找已排序数组
- Hibernate 延迟加载 .
- UVA484水题判断字符串中单词数目
- LeetCode:same_tree题解
- 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
- App上线流程全攻略(史上最详细步骤)
- NineoldAndroids动画库源码分析 .
- 指向指针的指针变量的应用
- acdream 1211 Reactor Cooling 网络流