zoukankan      html  css  js  c++  java
  • Leetcode: 二分搜索法

    package com.LeetCode;

    /**
     * 算法:二分搜索法查找一个值,并返回索引值
     * https://leetcode.com/problems/search-insert-position/
     *
     */
    public class BinSearch {

        public static void main(String[] args) {
            int[] a = {1,3,5,6};
            int[] b = {1,5,8, 13, 19};
            int[] c = {3,5,11,17,21,23,28,30,32,50,64,78,81,95,101};
            
            int result = binSearch2(a, 0);
            System.out.println("Index is:" + result);
            
        }
        
        
        public static int binSearch2(int srcArray[], int key)
        {
            int start = 0;
            int end = srcArray.length -1;
            int mid = srcArray.length / 2 ;
            System.out.println("mid="+mid);
            
            if (key == srcArray[mid])
            {
                return mid;
            }
            
            while (start <= end)
            {
                mid = (end-start)/2+start;
                System.out.println("Now mid="+mid);
                if(key<srcArray[0])
                {
                    System.out.println("Smaller than all numbers in array. return 0");
                    return 0;
                }
                if(key>srcArray[end])
                {
                    System.out.println("Bigger than all numbers in array.");
                    return srcArray.length;
                }
                if ((key>srcArray[mid-1]) && (key < srcArray[mid]))
                {
                    System.out.println("Not in index, return 'mid' value");
                    return mid;
                }
                if (key<srcArray[mid])
                {
                    end = mid-1;
                }
                else if (key>srcArray[mid])
                {
                    start = mid+1;
                }
                else {
                    {
                        return mid;
                    }
                }
            }
            System.out.println("Can't find the number in array.");
            return -1;
            
        }
    }
  • 相关阅读:
    洛谷P3811题解
    洛谷P3353在你窗外闪耀的星星-题解
    Map根据value来排序
    java8 groupby count
    Java反射
    maven profile环境切换
    获取nginx代理情况下的真实ip
    获取request里header的name和value
    git 删除iml文件
    java list 排序
  • 原文地址:https://www.cnblogs.com/backpacker/p/10867719.html
Copyright © 2011-2022 走看看