二分查找--Java版
来源:互联网 发布:坏家伙的全盛时代 知乎 编辑:程序博客网 时间:2024/05/29 07:12
目录
1、二分查找解释
2、二分查找图解
3、二分查找代码
——————————————————————————————————
1、二分查找解释
算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。
三种查找方法的比较
平均性能:斐波那契>折半
2、二分查找图解
3、二分查找代码
package com.datastructure.search;/** * Created by yuhui on 2017/4/21. * *二分查找 * 算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大, * 则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止, * 否则序列中没有待查的关键字。 *二种查找方法的比较 * 平均性能:斐波那契>折半 */public class Binary_Search { public static void main(String ars[]){ int[] a={2,4,6,8,9,15,20}; int num = biSearch(a ,15); System.out.println(num); } //1.非递归代码 public static int biSearch(int []array,int a){ int min=0; int max=array.length-1; int mid; while(min<=max){ mid=(min+max)/2; System.out.println(mid+"--------"); if(array[mid]==a){ return mid+1; }else if(array[mid]<a){ min=mid+1; }else{ max=mid-1; } } return -1; } //2.递归实现 时间复杂度为 O(logN) public static int sort(int []array,int a,int min,int max){ if(min<=max){ int mid=(min+max)/2; if(a==array[mid]){ return mid+1; } else if(a>array[mid]){ return sort(array,a,mid+1,max); }else{ return sort(array,a,min,mid-1); } } return -1; } }
如果您喜欢我写的博文,读后觉得收获很大,不妨小额赞助我一下,让我有动力继续写出高质量的博文,感谢您的赞赏!!!
阅读全文
0 0
- Java版 二分查找
- 二分查找--Java版
- 二分查找算法(Java版)
- 二分查找(折半查找) java
- Java二分查找、折半查找
- java版的二分查找算法
- 简单的二分查找(java版)
- 二分查找算法解析(java版)
- 二分查找法 (java版)
- java实现递归版二分查找算法
- 二分查找法(JAVA版)
- Rhyme/二分查找(binary search)Java版
- java二分查找
- java 二分查找法
- java二分查找
- Java实现 二分查找
- java二分查找
- java:二分查找法
- uC/OS-III之消息传递
- 复杂链表的复制
- Scrapy 爬虫程序
- SQL Server AlwaysOn 可用性组安装补丁SP步骤
- 解决:[16033:16033:0607/114040.917620:ERROR:browser_main_loop.cc(257)] GTK theme error: Unable to locat
- 二分查找--Java版
- [YTU]_2642 (填空题:类模板---求数组的最大值)
- ViewPager加ImageLoader图片轮播
- 使用gcov生成覆盖率时,提示version '402*', prefer '408*'
- fastclick.js
- Android的Hendler机制详解
- jqGrid 5.x colModel 详解
- Kotlin基础教程-类型检查和自动转换
- PHP基础知识点总结01