/*
在排序好的数组中添加一个数字, 将添加后的数字插入到数组合适的位置.
(可以充分利用已经排序好这一条件,即可以比较大小)
*/
import java.util.Scanner; //导包
class ExtracurricularWork3 {
public static void main(String[] args) {
//System.out.println("Hello World!");
int[] arr = {5,10,20,40,42,100,500};
Scanner sc = new Scanner(System.in); //创建对象
System.out.println("请输入待放入数值:");
int a = sc.nextInt(); //将键入的值存入到a中
int index = getLowIndex(arr,a);
System.out.println(index);
printArray(arr); //插入前的数组
int[] arr1 = insertArray(arr,index,a);
printArray(arr1); //插入后的数组
}
/*
数组元素与输入数值进行比较,返回比其小的元素的索引
返回值类型 int
参数列表 int[] arr, int a;
*/
public static int getLowIndex(int[] arr,int a) {
int index = 0;
for (int i = 0;i < arr.length ;i++ ){
if (a < arr[i]){
index = i;
break;
}
}
return index;
}
/*
将数值插入数组相应位置
返回值类型 int[];
参数列表 int[] arr,int a;
*/
public static int[] insertArray(int[] arr,int a,int b) {
int[] arr1 = new int[arr.length+1];
for (int i = 0;i < arr.length ;i++ ){
arr1[i] = arr[i];
}
//int temp = arr1[0];
arr1[arr1.length -1] = b;
for (int i = 1;i < arr1.length ;i++ ){
/*
if (a <= i){
temp = arr1[i]; //前一个值保存
arr1[i] = b;
//arr1 = moveArray(arr1,a,temp);
break;
}
*/
for (int j = 0; j <arr1.length;j++ ){
if (arr1[i] < arr1[j]){
int temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
}
}
return arr1;
}
/*
将数组中元素在规定位置向后移动一个位置
返回值类型 int[]
参数列表 int[] arr, int i, int j;
*/
/*
public static int[] moveArray(int[] arr,int i,int t) {
//int temp = arr[i];
//arr[++i] = arr[i];
//arr[j] = temp;1
//int temp = arr[j];
arr[i+1] = t;
for (int j = i+2;j < arr.length ;j++){
//arr1 = swapArray(arr1,j,++j);
//int temp = arr[j];
//把后一个数保存起来
int temp = exchangeArray(arr,++j);
//arr[j+1] = arr[j];
}
return arr;
}
*/
/*
a[2] =a[1] temp = a[2]
a[3] =temp temp = a[3]
a[4] =temp temp = a[4]
5,10,20,40,42,100,500
*/
/*
public static int exchangeArray(int[] arr ,int i) {
if (i >= 0 && i < arr.length-1){
int temp =arr[i+1];
arr[i+1] = arr[i];
return temp;
}
return -1;
}
*/
/*
打印数组
返回值类型 void
参数列表 int[] arr;
*/
public static void printArray(int[] arr) {
for (int i = 0;i < arr.length ;i++ ){
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
|
|