算法--查找数组中元素

    xiaoxiao2025-06-01  85

    查找算法

    1.线性查找

    缺点:效率不高,通过遍历循环,一个个查找比对。

    2.二分法

    通过死循环不断地将数组一分为二,得到中间元素,然后目标元素与中间元素进行比对,当出位置等于末位置时,退出。

    缺点:局限性很大,只能用于排好序了地数组

    public class Search{ public static void main(String[] args){ MySearch arr=new MySearch(); int res=arr.lineSearch(2); int res1=arr.twoSearch(3); System.out.println(res); System.out.println(res1); } } class MySearch{ private int[] array; public MySearch(){ this.array=new int[]{1,2,3,4,5,6,7}; } //线行查找 public int lineSearch( int value) { for (int i = 0; i < array.length; i++) { if (array[i] == value) { return i; } }//没有找到,返回-1 return -1; } //二分法, public int twoSearch(int value){ //第一位置 int begin=0; //最后位置 int end=array.length-1; //中间位置 int midindx=(begin+end)/2; //循环查找 while(true){ //当开始位置在结束位置之后或者重合时,那么没有这个元素 if(begin>=end){ return -1; } //判断目标值是否与中间元素相等 if(array[midindx]==value){ return midindx; }else{ //判断目标元素与中间元素的大小关系 if(value>array[midindx]){ end=begin+1; }else{ end=end-1; } //取出新的中间位置 midindx=(begin+end)/2; } } } }
    最新回复(0)