zoukankan      html  css  js  c++  java
  • 有序线性表(存储结构数组)--Java实现

     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 }
  • 相关阅读:
    个人学期总结
    管理信息系统 第三部分 作业
    模型分离(选做)
    密码保护
    实现搜索功能
    完成个人中心—导航标签
    个人中心标签页导航
    评论列表显示及排序,个人中心显示
    完成评论功能
    ASP.NET Core开发者指南
  • 原文地址:https://www.cnblogs.com/sun1993/p/7680599.html
Copyright © 2011-2022 走看看