java数组-顺序插入数据及二分法查找数据

简介:

顺序加入数组,是我自己想出来的。

而二分法这么简单的算法,我自己没有实践出来,还是看了一下书上代码之后,凭记忆写出来的。

可能有稍许不同,但不影响结果。

加油呀。要

复制代码
class HighArray
  {
      private long[] a;
      private int nElems;
      
      public HighArray(int max)
      {
          a = new long[max];
          nElems = 0;
      }
      public int size()
      {
          return nElems;
      }
      public int find(long searchKey)
      {
          int lowerBound = 0;
          int upperBound = nElems - 1;
          int curIn;
          
          while(true)
          {
              curIn = (lowerBound + upperBound) / 2;
              if(a[curIn] == searchKey){
                  return curIn;
              }
              else if(lowerBound > upperBound){
                  return nElems;
              }
              else{
                  if(a[curIn] < searchKey)
                      lowerBound = curIn + 1;
                  else
                      upperBound = curIn -1;
              }
                  
          }
         
      }
      public void insert(long value)
      {
          int j;
          int i;
          long temp;
          a[nElems] = value;
          nElems++;
          for(j = 0; j < nElems; j++){
              for(i = j; i < nElems; i++){
                  if (a[j] > a[i]){
                      temp = a[i];
                      a[i] = a[j];
                      a[j] = temp;
                  }
              }
            }

          System.out.print("Insert  value: " + value);
          System.out.println("");
      }
      public boolean delete(long value)
      {
          int j;
          for(j = 0; j < nElems; j++)
              if(value == a[j])
                  break;
          if(j == nElems){
              System.out.println("Can't delete value: " + value);
              return false;
          }
          else
          {
              for(int k = j; k < nElems; k++)
                  a[k] = a[k + 1];
              nElems--;
              System.out.println("Delete value: " + value);
              return true;
          }
      }
      public void display()
      {
          for(int j = 0; j < nElems; j++)
              System.out.print(a[j] + " ");
          System.out.println(" ");
      }
  }



public class HighArrayApp {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int maxSize = 100;
        int searchKey;
        HighArray arr;
        arr = new HighArray(maxSize);
        
        arr.insert(345);
        arr.insert(24);
        arr.insert(4);
        arr.insert(213);
        arr.insert(987);
        arr.insert(43);
        arr.insert(435);
        arr.insert(17);
        arr.insert(323);
        arr.insert(98);
        
        arr.display();
        System.out.println("Array size is : " + arr.size());
        searchKey = 35;
        if(arr.find(searchKey) != arr.size())
            System.out.println("Found searchKey : " + searchKey);
        else
            System.out.println("Can't find searchKey : " + searchKey);  
        searchKey = 323;
        if(arr.find(searchKey) != arr.size())
            System.out.println("Found searchKey : " + searchKey);
        else
            System.out.println("Can't find searchKey : " + searchKey);  

        
        arr.delete(00);
        arr.delete(55);
        arr.delete(99);
        
        arr.display();
        
        arr.insert(62);
        arr.insert(34);
        
        arr.display();

    }

}
复制代码

目录
相关文章
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
22 1
|
1月前
|
存储 Java
JAVA字符串与其他类型数据的转换
JAVA字符串与其他类型数据的转换
28 4
|
5天前
|
存储 Java 程序员
Java 数组
4月更文挑战第16天
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
1天前
|
存储 Java
Java中利用BitMap位图实现海量级数据去重
Java中利用BitMap位图实现海量级数据去重
|
28天前
|
Java
java 8 数组转字符串并以逗号分隔
java 8 数组转字符串并以逗号分隔
11 0
|
1月前
|
Java
【Java】数组中的拷贝方法与初步理解深浅拷贝
【Java】数组中的拷贝方法与初步理解深浅拷贝
13 0
|
1月前
|
存储 Java C语言
【Java】以数组为例简单理解引用类型变量
【Java】以数组为例简单理解引用类型变量
15 1
|
1月前
|
缓存 NoSQL Java
java中复杂业务情况下的集合操作(增减集合同步数据)
java中复杂业务情况下的集合操作(增减集合同步数据)
27 0
|
1月前
|
存储 Java 索引
Java数组
Java数组
7 0