zoukankan      html  css  js  c++  java
  • 查找

    获取某元素第一次出现的地方

    1 public static int getIndex(int[] arrm,int key) {
    2                 for(int x=0;x<arrm.length;x++) {
    3                     if(arrm[x]==key)
    4                         return x;
    5                 }
    6                 return -1;//return -1:首先,要的一个角标,而返回-1,角标没有负数
    7                 
    8             }

    二分查找:

    前提:数组必须按顺序排序

     1 public static int HalfSearch(int []arrs,int key) {
     2                 int min,max,mid;
     3                 min=0;
     4                 max=arrs.length-1;
     5                 mid=(max+min)/2;
     6                 while(arrs[mid]!=key) {
     7                     if(arrs[mid]<key)
     8                         min=mid+1;
     9                     else if(arrs[mid]>key)
    10                         max=mid-1;
    11                     if(max<min)
    12                         return -1;//此时说明 表中没有key次数据
    13                     mid=(max+min)/2;
    14                         
    15                 }
    16                 return mid;
    17             }

    给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的

    那么这个元素的存储的角标为如何获取(折半查找法)

     1 public static int HalfSearch_1(int []arrs,int key) {
     2                 int min,max,mid;
     3                 min=0;
     4                 max=arrs.length-1;
     5                 mid=(max+min)/2;
     6                 while(arrs[mid]!=key) {
     7                     if(arrs[mid]<key)
     8                         min=mid+1;
     9                     else if(arrs[mid]>key)
    10                         max=mid-1;
    11                     if(max<min)
    12                         return min;//当数组中没有该数时,最终max=min-1;
    13                     mid=(max+min)/2;
    14                         
    15                 }
    16                 return mid;
    17             }

    java已给代码:

    Int index=Arrays.binarySearch(arr,45);

    //返回正数就是数组中有该数,且返回位置,返回负数表示,该数应该排在返回{(负数的绝对值)-1 }的位置

  • 相关阅读:
    数值的整数次方
    二进制中1的个数
    SpingBoot 启动自动给MongoDB建库
    Java 依赖冲突的解决办法
    Http协议
    你被限流了吗?
    LeetCode 783. 二叉搜索树节点最小距离
    Leetcode 687. 最长同值路径
    LeetCode 784. 字母大小写全排列
    LeetCode 面试题 08.06. 汉诺塔问题
  • 原文地址:https://www.cnblogs.com/fmust/p/12378567.html
Copyright © 2011-2022 走看看