A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 会说话的木头 于 2014-6-26 13:57 编辑

题目是这样:有一个有序数组,想要将一个元素插入到该数组中,保证该数组是有序的。
   毕老师只找到该元素插入的位置,没有将元素插入该数组,我将代码补全,见代码
  1.         public static void main(String[] args){
  2.                
  3.                
  4.         
  5.                 int[] arr = new int[]{1,2,5,9,15,26,37,48,90};
  6.                 int[] arr1 = new int[arr.length+1];
  7.                
  8.                 int index = halfSearch_1(arr, 100);
  9.         
  10.                 for(int i=0,j=0;i<arr.length;i++,j++){
  11.                         arr1[j]=arr[i];
  12.                         }
  13.                 insertEle(arr1,100,index);
  14.                 sop(arr1);
  15.                
  16.         };
  17.         public static void insertEle(int[] arr1, int key, int index)
  18.     {
  19.             for (int i=arr1.length-1; i>index; i--)
  20.             {
  21.                     arr1[i]=arr1[i-1];                        
  22.             }
  23.             arr1[index]=key;
  24.     }
  25.         public static int halfSearch_1(int[]arr,int key){
  26.                 int min=0,max=arr.length-1,mid;
  27.                 while(min<=max){
  28.                         mid=(min+max)>>1;
  29.                         if(key>arr[mid]){
  30.                                 min=mid+1;
  31.                         }
  32.                         else if(key<arr[mid]){
  33.                                 max = mid-1;
  34.                         }
  35.                         else return mid;
  36.                 }
  37.                 return min;
  38.                
  39.         
  40.         }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马