数组的二叉查找算法
程序员文章站
2022-03-21 11:08:01
...
从数组中查找特定数据的最简单方法就是遍历数组中的所有元素,这种方法也叫线性查找。线性查找适用于小型数据或未排序的数组。
1.定义数组; 2.调用方法,参数传递; 3.判断,return
这里涉及到参数传递;局部变量作为参数传递,传递时强调引用类型
import java.util.Scanner; public class indexof { public static void main(String[] args) { // TODO Auto-generated method stub // Scanner scan= new Scanner(System.in); int[] a = new int[]{4,2,3}; System.out.println(indexOf(a,2)); } private static int indexOf(int[] a, int value) { // TODO Auto-generated method stub for(int i=0;i<a.length;i++){ if(a[i]==value) return i; } return -1; } }
对于大型已排序好的数组,可以采用高效的二叉查找算法;该算法找到数组中位于中间的元素,若等于中间的元素,就返回该元素的索引,入则,将问题简化为查找已排序数组的一半元素。
1.定义数组; 2.调用方法;3.输出
注意:循环用while,可以判断;此外while里面的条件要是low<=high,不要把等于号去掉了,会没办法停止循环;此外要注意三个判断语句时,要注意顺序
public class split { public static void main(String[] args) { // TODO Auto-generated method stub int[] a = new int[]{2,3,5,6,9}; System.out.println(indexOf(a,3)); } private static int indexOf(int[] a, int value) { // TODO Auto-generated method stub int low=0; int high=a.length-1; int middle; while(low<=high){ middle=(high+low)/2; if(value==a[middle])return middle; if(value<a[middle]){ high=middle-1; }else{ low=middle+1; } } return -1; } }
上一篇: ajax实现无刷新上传文件功能
下一篇: 数组的二叉查找算法
推荐阅读
-
php使用array_search函数实现数组查找的方法,array_search数组_PHP教程
-
php常用的排序算法与二分法查找 二分法排序 c++二分法排序 二分法插入排
-
查找数组中指定键名的值_PHP教程
-
指定数组折半法查找元素; 输出水仙花数; 输出*****的指定形状
-
设计一个算法:用不多于3n/2的平均比较次数,在数组A[1,...,n]中找出最大值和最小值的元素
-
Java 编程实例 - 查找数组中的重复元素
-
设计一个最优算法来查找一n个元素数组中的最大值和最小值
-
查找数组重复的元素
-
[PHP] 算法-二叉树的子结构判断的PHP实现
-
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比_php技巧