/*
需求:
1.有一个有序的数组,想要将一个元素插入数组中,
还要保证数组是有序的,如何获取元素在数组中的位置
2.把这个元素插入数组,并打印插入后的数组
*/
class ArrayT
{
public static void main(String[] args)
{
int[] arr = {2,4,5,7,8,19,32,45};//插入8
printArray(arr);//插入前打印
int index = getIndex(arr, 8);
System.out.println("index = " + index);//打印插入位置
}
//定义查找插入位置方法
public static int getIndex(int[] arr, int key)
{
int min = 0, max = arr.length-1, mid;
while (min <= max)
{
mid = (max + min)>>1;
if (key > arr[mid])
{
min = mid + 1;
}
else if (key < arr[mid])
{
max = mid - 1;
}
else
return mid;
}
return min;
}
//定义打印数组方法
public static void printArray(int[] arr)
{
System.out.print("[ ");
for (int x = 0; x < arr.length; x++)
{
if (x != arr.length - 1)
{
System.out.print(arr[x] + ", ");
}
else
System.out.println(arr[x] + " ]");
}
}
//求把元素插入数组的方法
/*
需求2思路:
1. 定义一个新的数组,存放插入元素后的数据。
2. 新数组元素个数,arr.length+1
3.
*/
} |