基础算法系列(二)查找算法之二分查找
来源:互联网 发布:淘宝网踩踏式垃圾桶 编辑:程序博客网 时间:2024/05/16 15:18
二分查找又称折半查找,顾名思义,就是一半一半的查找,具体是怎么一半一半的呢?慢慢看。对一个数组进行二分查找是有一个前提条件的,就是这个数组是有序的,就是说这个数组要么是升序的,要么是降序的。对一般的数组,进行二分查找需要先对数组进行排序,这里先不讲数组排序。查找算法讲完再详细的讨论排序算法。比如说这里有一个数组{1,2,3,5,6,7,10,75,96,111,445},我们想找找看数字3在不在这个数组中,那么3就是我们的关键字,首先找出这个数组的中间数,它是7,拿关键字3跟7比较,7比3大,那么我们想要的查找的数字3只可能存在这个数组的左半部分,现在左半部分是什么?{1,2,3,5,6},再拿这个新数组的中间数跟我们的关键字3进行比较,3=3,查找成功,结束查找;反之如果在一个数组中到最后都没有找到关键字,就是查找失败。
/** * 二分查找 */public static int search_erfen(int search, int[] array, int count) {int mid = 0;count++;if (array.length != 0) {mid = array.length / 2;if (search == array[mid]) {return count;} else {if (search > array[mid]) {int[] newArray = new int[array.length - mid - 1];for (int i = mid + 1; i < array.length; i++)newArray[i - mid - 1] = array[i];return search_erfen(search, newArray, count);} else {int[] newArray = new int[mid];for (int i = 0; i < mid; i++)newArray[i] = array[i];return search_erfen(search, newArray, count);}}} elsereturn -1;}查找成功返回查找次数,查找失败返回-1
0 0
- 基础算法系列(二)查找算法之二分查找
- 【算法-查找之二】二分查找
- 基础算法系列(一)查找算法之顺序查找
- 基础算法系列(三)查找算法之分块查找
- 算法系列(二)查找算法--基本查找和二分查找
- 基础算法 二分查找
- 【算法基础】二分查找
- 二分查找--基础算法
- 【算法基础】二分查找
- 基础算法-二分查找
- 【数据结构与算法之查找算法二】二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 推荐!国外程序员整理的Java资源大全
- 增强for循环
- javascritp 传入对象或数组生成json字符串 解析json字符串
- 微商的微信营销互动方法
- 持续集成之Maven实战
- 基础算法系列(二)查找算法之二分查找
- Android ExpandableListView长按事件完美解决
- find_element_by_accessibility_id 在 android 中的详解
- 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的错误解决方法
- 华为机试—寻找丑数(由浅入深优化至20ms)
- java反射
- getElementById(b1J=o
- 解决Ubuntu自带编译器不好使问题
- 为网上流行论点“UIAutomator不能通过中文文本查找控件”正名