有序線性表(儲存結構數組)--Java實現

來源:互聯網
上載者:User

標籤:new   item   boolean   pre   public   提高   order   線性表   items   

 1 /*有序數組:主要是為了提高尋找的效率 2  *尋找:無序數組--順序尋找,有序數組--折半尋找 3  *其中插入比無序數組慢 4  * */ 5 public class MyOrderedArray { 6     private long[] arr; 7     private int items; 8      9     public MyOrderedArray(int max) {10         arr = new long[max];11         items = 0;12     }13     14     //數組中元素的個數15     public int size(){16         return items;17     }18     19     //折半尋找20     public int find(long key){21         int low = 0;22         int high = items - 1;23         int mid;//變化的24         while(low <= high){25             mid = (low + high) / 2;26             if(key == arr[mid]){27                 return mid;28             }29             else if(key > arr[mid]){30                 low =  mid + 1;31             }32             else if(key < arr[mid]){33                 high = mid - 1;34             }35         }36         return -1;37     }38     39     //插入元素40     public void insert(long key){41         int i;42         43         for( i = 0; i < items; i++){ //先找到位置44             if(key < arr[i]){45                 break;46             }47         }48         49         for(int k = items;k>i; k--){   //移動元素50             arr[k] = arr[k -1];51         }52         53         arr[i] = key;//插入元素到找到的位置54         items++;55     }56     57     //刪除元素--先判斷找的位置合法--在判斷58     public boolean delete(long key){59         int i = find(key);60         if(i == items){61             return false;62         }63         else{64             for(int k = i; k < items; k++){65                 arr[k] = arr[k + 1];66             }67             items--;68             return true;69         }70     }71     72     public void displayArray(){73         for(int i = 0;i < items;i++){74             System.out.print(arr[i] + " ");75         }76         System.out.println();77     }78     79 }

 

有序線性表(儲存結構數組)--Java實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.