编写一个函数 ,这个函数接受两个参数分别为int数组 a、int数字 n。函数的功能为:可以将数组进行排序,并将n放到数组a合适的位置上。
代码:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] a={11,24,16,17,19,10,11,15};
int [] b=addArray(a,13);
for(int i = 0 ; i<b.length ;i++){
System.out.print(b[i]+" ");
}
}
static int[] addArray(int[] a, int n) {
java.util.Arrays.sort(a);
int index=getArray(a,n);
int [] b=new int [a.length+1];
for(int i=0;i<b.length;i++){
if(i<index){
b[i]=a[i];
}else if(i==index){
b[i]=n;
}else{
b[i]=a[i-1];
}
}
return b ;
}
static int getArray(int[] a, int n) {
int min,max,mid;
int count=0;
min=0;
max=a.length-1;
while(min<=max){
mid=(min+max)/2;
if(n>a[mid]){
min=mid+1;
}else if(n<a[mid]){
max=mid-1;
}else{
return mid;
}
count++;
}
System.out.println("循环了"+count+"次");
return min;
}
}