题目:给定一个数组,使用排序算法进行排序,给定一个数,使用二分查找找到该数的位置,将其插入到该数组中
核心代码:
package homework09.homework0914;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
int[] array=new int[10];
Random random=new Random();
for(int i=0;i<array.length;i++){
array[i]=random.nextInt(40)+10;
}
System.out.println(Arrays.toString(array));
for(int i=1;i<array.length;i++){
int temp=array[i];
int j=i;
while(j>0&&temp<array[j-1]){
array[j]=array[j-1];
j--;
}
array[j]=temp;
}
System.out.println(Arrays.toString(array));
Scanner scanner = new Scanner(System.in);
System.out.println("请从键盘输入一个数:");
int number = scanner.nextInt();
int start=0;
int end=array.length-1;
int middle=(start+end)/2;
while(start<=end){
if(number==array[middle]){
System.out.println(middle);
break;
}
if(number>array[middle]){
start=middle+1;
}
if(number<array[middle]){
end=middle-1;
}
middle=(start+end)/2;
}
if(number>array[middle]){
middle++;
}
array=Arrays.copyOf(array,array.length+1);
System.out.println(Arrays.toString(array));
System.arraycopy(array,middle,array,middle+1,array.length-middle-1);
array[middle]=number;
System.out.println(Arrays.toString(array));
}
}
程序运行截图: