數組簡單操作

package com.datastructure.array;


public class Example1 {
  private long[] arr;
  //有效數據的多少 長度
  private int elements;//初始化爲0
  
  public Example1(){
 arr = new long[50];
  }
  public Example1(int maxsize){
 arr = new long[maxsize];
  }
  /**
   * 無序添加數據
   */
  public void insert(long value){
 arr[elements] = value;
 elements++;
  }
  /**
   * 有序添加數據
   */
  public void insertorder(long value){
 int i;
 for(i = 0;i<elements;i++){
 if(arr[i]>value){
 break;
 }
 }
 for(int j=elements;j>i;j--){
 arr[j] = arr[j-1];
 }
 arr[i] = value;
 elements++;
  }
  /**
   * 顯示數據
   */
  public void display(){
 System.out.print("[");
 for(int i=0;i<elements;i++){ 
 if(i == (elements-1)){
 System.out.print(arr[i]);
 }else{
 System.out.print(arr[i]+",");
 }
 }
 System.out.print("]");
  }
  /** 
   * 屬於線性查找
   * 根據值查找數據返回索引
   */
  public int search(long value){
 int i;
 for(i=0;i<elements;i++){
 if(value == arr[i]){
 break;
 }
 }
 if(i == elements){
 return -1;
 }else{
 return i;
 }
  }
  /**
   * 二分法查找 前提,需要數組是有序,從中間分割
   * 根據值查找數據返回索引
   * -------------------------------------------------------------------
   * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   * -------------------------------------------------------------------
   */
  public int getindex(long value){
 int middle = 0;//中間值
 int low = 0;//起始位置
 int pow = elements;//最後位置
 while(true){
 middle = (pow + low) / 2;
 if(arr[middle] == value){
 return middle;
 }else if(low > pow){
 return -1;
 }else{
 if(arr[middle] > value){
 pow = middle - 1;
 }else{
 low = middle + 1;
 }
 }
 }
  }
  /** 
   * 根據索引查找 
   */
  public long get(int index){
 if(index>=elements || index<0){
 throw new ArrayIndexOutOfBoundsException();
 }else{
return arr[index];
 }
  }
  /**
   * 刪除數據
   */
  public void delete(int index){
 if(index>=elements || index<0){
 throw new ArrayIndexOutOfBoundsException();
 }else{
 for(int i=index;i<elements;i++){
 arr[i] = arr[i+1];
 }
 elements--;
 }
  }
  /**
   * 更新數據
   * @param index 索引
   * @param value 更新後的值
   */
  public void update(int index,long value){
 if(index>=elements || index<0){
 throw new ArrayIndexOutOfBoundsException();
 }else{
 arr[index] = value;
 }
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章