本帖最后由 会说话的木头 于 2014-6-26 13:57 编辑
题目是这样:有一个有序数组,想要将一个元素插入到该数组中,保证该数组是有序的。
毕老师只找到该元素插入的位置,没有将元素插入该数组,我将代码补全,见代码- public static void main(String[] args){
-
-
-
- int[] arr = new int[]{1,2,5,9,15,26,37,48,90};
- int[] arr1 = new int[arr.length+1];
-
- int index = halfSearch_1(arr, 100);
-
- for(int i=0,j=0;i<arr.length;i++,j++){
- arr1[j]=arr[i];
- }
- insertEle(arr1,100,index);
- sop(arr1);
-
- };
- public static void insertEle(int[] arr1, int key, int index)
- {
- for (int i=arr1.length-1; i>index; i--)
- {
- arr1[i]=arr1[i-1];
- }
- arr1[index]=key;
- }
- public static int halfSearch_1(int[]arr,int key){
- int min=0,max=arr.length-1,mid;
- while(min<=max){
- mid=(min+max)>>1;
- if(key>arr[mid]){
- min=mid+1;
- }
- else if(key<arr[mid]){
- max = mid-1;
- }
- else return mid;
- }
- return min;
-
-
- }
复制代码 |
|