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 }的位置

  • 相关阅读:
    C++中的派生类相关内容,结构体、共同体内容
    window查看端口以及telnet的使用
    java中long型转换为int
    C/C++数组初始化全为0
    linux中的一些指令 find
    bat相关知识
    bat设置开机自启动
    for循环语句及批量创建用户!
    Shell函数!
    case语句!
  • 原文地址:https://www.cnblogs.com/fmust/p/12378567.html
Copyright © 2011-2022 走看看