zoukankan      html  css  js  c++  java
  • Java 基础(数组线性查找,二分法查找)

    数组线性查找,二分法查找

    package com.klvchen.exer;
    
    public class ArrayTest3 {
    	public static void main(String[] args) {
    		String[] arr = new String[] {"JJ", "DD", "MM", "BB", "GG", "AA"};
    	
                    //查找(或搜索)
    		//线性查找
    		String dest = "BK";
    		
    		boolean isFlag = true;
    		
    		for(int i = 0; i < arr.length; i++) {
    			if(dest.equals(arr[i])) {
    				System.out.println("找到了指定的元素, 位置: " + i);
    				break;
    			}
    		}
    		if(isFlag) {
    			System.out.print("很遗憾,没有找到");
    		}
    		
    		System.out.println();
    		
    		//二分法查找
    		//前提:所要查找的数组必须有序
    		int[] arr2 = new int[] {-98, -34, 2, 34, 54, 66, 79, 105, 210, 333};
    		
    		int dest1 = 33;
    		int head = 0; //初始的首索引
    		int end = arr2.length - 1; //初始的末索引
    		boolean isFlag1 = true;
    		
    		while(head <= end) {
    			int middle = (head + end)/2;
    			
    			if(dest1 == arr2[middle]) {
    				System.out.print("找到了指定的元素,位置为: " +  middle);
    				isFlag1 = false;
    				break;
    			}else if(arr2[middle] > dest1) {
    				end = middle - 1;
    			}else {
    				head = middle + 1;
    			}
    		}
    		if(isFlag1) {
    			System.out.println("很遗憾,没有找到~");
    		}
    	}
    }
    
    
  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/klvchen/p/14285751.html
Copyright © 2011-2022 走看看