二分法查找是建立在针对有序数组的查找,这里使用的是递归的算法,算法本身比较简单,这里就不再叙述。
二分法查找的时间效率为O(log n)
代码如下:
class BinarySearch {
public static void main(String[] args) {
int[] a = {2,3,4,5,6,7,8,9,10,13,17,18,24,56,78};
System.out.println(search(a,5));
}
private static int search(int[] a, int key) {
return search(a,0,a.length,key);
}
private static int search(int[] a, int from, int to, int key) {
if(from > to) return -1;
int middle = (from + to)/2;
if (a[middle] == key) return middle;
if (a[middle] > key) return search(a,from,middle-1,key);
else return search(a,middle+1,to,key);
}
}
分享到:
相关推荐
使用二分法搜索的技术去搜索一个数组中元素,其中包括递归方法和非递归方法。欢迎大家评阅后给我一点好的建议,谢谢哦。
主要介绍了python二分法查找算法实现方法,结合实例形式分析了Python使用递归与非递归算法实现二分查找的相关操作技巧,需要的朋友可以参考下
分别用递归和非递归方法实现二分查找算法 的完整程序,indexof()返回的是循环实现的二分法查找,getindex()实现的是递归算法实现的二分法查找。
本文实例讲述了python二分查找算法的递归实现方法。分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 last = len(alist)-1 found = False while ...
二分法查找C++代码,包括递归健忘版、非递归健忘版、递归非健忘版、非递归健非忘版,用到了stl里的vector和模板的知识
对一组数据,二分法查找建立二叉递归树 属于基本算法,递归的实现
二分搜索的递归和非递归实现。比较简单的实现。
文件名:Python笔记—递归 二分法从列表找指定的值. 配合博客地址:https://blog.csdn.net/XianZhe_/article/details/107771584 为在学习Python时所整理制作的笔记文件
主要介绍了PHP基于二分法实现数组查找功能,结合实例形式分析了while循环与递归调用算法实现二分查找功能的相关实现技巧,需要的朋友可以参考下
实现一个函数,在一个有序整型数组中二分查找出指定的值,找到则返回该值的位置,找不到返回 -1。 package demo; public class Mytest { public static void main(String[] args) { int[] arr={1,2,5,9,11,45}; ...
1.算法:(设查找的数组期间为array[low, high]) (1)确定该期间的中间位置K(2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;...递归找,即可。 2.python代码: 复制代码 代码如下:#!/usr/bin/python
Java实现二分查找的递归和非递归算法
二分法查找数组是否包含某一元素,兼容正反序,代码实现:复制代码 代码如下:<?php $searchValue = (int)$_GET[‘key’]; function search(array $array, $value) { $max = count($array)-1; $min = 0; $...
编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。
1 一列数的规则如下: 1、1、2、3、5、8、13、21、34.........3 实现二分法查找,int a[8] = {3,12,24,36,55,68,75,88},查找24需要几次查找出来。 4 实现冒泡排序, int[] array = { 23,45,16,7,42 };。
主要介绍了PHP二分查找算法,结合实例形式分析了php基于递归与非递归方法实现二分查找的具体操作技巧,需要的朋友可以参考下
C 二分查找算法源码实例,编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。