zoukankan      html  css  js  c++  java
  • 算法_线性查找与二分法查找

    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("没找到指定元素");
    		}
    		
    
    	}
    }
    

      

  • 相关阅读:
    项目选题报告答辩总结
    项目UML设计(团队)
    项目选题报告答辩总结
    第七次作业
    结对第二次
    第四次作业
    alpha冲刺4
    alpha冲刺3
    alpha冲刺2
    alpha冲刺1
  • 原文地址:https://www.cnblogs.com/stefaniee/p/10930767.html
Copyright © 2011-2022 走看看