- 关于在一个数组中如何插入一个元素
- 思路是:插入一个元素需要将数组的长度进行增加一个,直接代码
1. 位置pos == 下标 - 1 ;
2.插入3的位置时候,b数组的第一个元素为原先数组的第一个, 第二个为原先的第二个 ,当到第三个时,b数组的第三个要插入的值是num,然后第三个之后的 ,都为对应a数组 -1 的位置, 也就是b[i]=a[i-1]。
public static int[] insertArrayNum(int[] arr , int pos, int num){
int[] b = new int[arr.length + 1 ] ;
if (arr.length < 0 || pos > arr.length || pos < 0){
return arr;
}
//b数组的循环
for (int i = 0; i < b.length; i++) {
if (pos - 1 > i ){
b[i] = arr[i];
}
if (pos - 1 == i){
b[i] = num ;
}
if (pos - 1 < i ){
b[i] = arr[i - 1];
}
}
sop(b);
return b ;
}
- 二分查找法 上2张图就明白了
//这是代码
private static int erFenFa(int[] arrs, int key) {
int low = 0 ;
int high = arrs.length - 1;
while (high >= low){
int mid = (low + high)/2 ;
if (key > arrs[mid]){
low = mid +1 ;
}else if (key == arrs[mid]){
return mid ;
}else {
high = mid -1 ;
}
}
return -low -1 ;//返回应该插入的地方
}