zoukankan      html  css  js  c++  java
  • 2020年7月3日 查找算法 代码

    查找算法之线性查找

    class Untitled {
    	public static void main(String[] args) {
                    //线性查找 效率低 需要遍历全部
    		int[] arr = new int[]{3,4,2,1,5,6};
    		int target = 1;
    		int index = -1;
    		for(int i=0;i<arr.length;i++)
    		{
    			if(arr[i] == target)
    			{
    				index = i;
    			}
    		}
    		System.out.println("目标元素位置:" + index);
    	}
    }
    

    数组中equals和==的区别

    没有区别,因为数组是object对象使用的是object中的equals方法,就是==方法。
    JDK中很多类重写了equals方法,包括java.lang.String和java.util.Arrays;
    JAVA数组的equals方法

    查找算法之二分法查找

    class Untitled {
    	public static void main(String[] args) {
    		//二分法查找
                    //效率相比线性查找效率较高,比较次数减少
    		int[] arr = new int[]{1,2,3,4,5,6,7,8,9};
    		int target = 8;
    		int begin = 0;
    		int end = arr.length - 1;
    		int mid = (begin + end)/2;
    		while(true)
    		{	
    			if(begin>=end)
    			{
    				System.out.println("目标元素不存在!");
    				break;
    			}
    			
    			if(arr[mid] == target)
    			{
    				System.out.println("目标元素位置为:" + mid);
    				break;
    			}else if(arr[mid] > target)
    			{
    				end = mid;
    				mid = (begin + end)/2;
    			}else
    			{
    				begin = mid;
    				mid = (begin + end)/2;
    			}
    		}
    	}
    }
    
  • 相关阅读:
    未解决的
    nodejs 7 和 8 的比较
    openresty Nginx
    Vim快捷键分类
    wireshark 包过滤
    RSA 公私钥 互换问题
    vim命令
    Windows 小端存储
    python 字符转换
    ssl证书验证
  • 原文地址:https://www.cnblogs.com/hjss/p/13233099.html
Copyright © 2011-2022 走看看