• 算法_线性查找与二分法查找


    package com.demo;
    
    /*
     * 1.线性查找
     *   在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程。
     *   线性查找又称为顺序查找。
     * 2.二分法查找
     *   二分法查找适用于数据量较大时,但是数据需要先排好顺序。
     */
    
    public class ArrayTest {
    	public static void main(String[] args) {
    		// 1.线性查找
    		// 字符串数组
    		String[] arrStr = new String[] { "AA", "BB", "CC", "DD", "EE" };
    		// 遍历数组
    		for (int i = 0; i < arrStr.length; i++) {
    			System.out.print(arrStr[i] + " ");
    		}
    		System.out.println();
    
    		String objStr = "BB"; // 目标字符串
    		boolean flag = true; // 标识
    		// 找到了指定元素
    		for (int i = 0; i < arrStr.length; i++) {
    			if (objStr.equals(arrStr[i])) {
    				System.out.println("找到了指定元素,位置为:" + i);
    				flag = false;
    				break;
    			}
    		}
    		// 没找到指定元素
    		if (flag) {
    			System.out.println("没找到指定元素");
    		}
    		System.out.println();
    
    		
    		
    		// 2.二分法查找 (前提:所查找的数是有序的)
    		// 整型数组
    		int[] arrNum = new int[] { 12, 24, 36, 48, 56, 76, 88, 94 };
    		// 遍历数组
    		for (int i = 0; i < arrNum.length; i++) {
    			System.out.print(arrNum[i] + " ");
    		}
    		System.out.println();
    		
    		int objNum = 48; // 所要查找的数字
    		int head = 0; // 头索引
    		int end = arrNum.length - 1; // 尾索引
    		boolean flag1 = true; // 标识
    		while (head <= end) {
    			int mid = (head + end) / 2; // 中间位置索引
    			if (objNum == arrNum[mid]) { // 找到了
    				System.out.println("找到了指定元素,位置为:" + mid);
    				flag1 = false; // 如果找到了元素,则改变flag1
    				break;
    			} else if (objNum < arrNum[mid]) {
    				end = mid - 1;
    			} else { // objNum > arrNum[mid]
    				head = mid + 1;
    			}
    		}
    		// 没找到(flag1没有改变)
    		if (flag1) {
    			System.out.println("没找到指定元素");
    		}
    		
    
    	}
    }
    

      

  • 相关阅读:
    01点睛Spring MVC 4.1-搭建环境
    18点睛Spring4.1-Meta Annotation
    17点睛Spring4.1-@Conditional
    16点睛Spring4.1-TaskScheduler
    15点睛Spring4.1-TaskExecutor
    Zabbix4.0.3解决中文乱码
    A10映射方法
    源码安装zabbix_agent4.0.3
    单机部署redis5.0集群环境
    zabbix系列之九——添加钉钉告警
  • 原文地址:https://www.cnblogs.com/stefaniee/p/10930767.html
Copyright © 2020-2023  润新知