数组倒序
元素值顺序不变
将数组从最后一位开始循环向前输出 (视觉效果,数组中值顺序不变)
for(int i = array.length-1;i>=0;i--){
System.out.print(array[i]+"\t")
}
元素值顺序改变
折半法将数组元素对半交换位置(第一位与最后一位交换),数组中值顺序改变
for(int i =0 ;i<array.length/2;i++){
int temp = array[array.length-1-i];
array[array.length-1-i] = array[i];
array[i] = array[array.length-1-i];
}
数组插入
因没有进行数组扩容动作,故后面的插入都是以0代替需要插入的位置
后置位插入
将数组插入最后一位,并通过移位保持数组升序
int nums[] = {5,18,26,33,40,0};
int num=28;
int index = nums.length-1;
for (int i = 0; i < nums.length; i++) {
if(nums[i] > num) {
index = i;
break;
}
}
for (int i = nums.length-1; i >index ; i--) {
nums[i] = nums[i-1];
}
nums[index] = num;
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+" ");
}
首位插入
将数组插入第一位,并通过移位保持数组升序
int nums[] = {0,5,18,26,33,40};
int index = 0;
int num = 28;
for (int i = 0; i < nums.length; i++) {
if(nums[i]>num) {
index = i-1;
break;
}
}
for (int i = 0; i < index; i++) {
nums[i] = nums[i+1];
}
nums[index] = num;
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+" ");
}
指定位置插入
将数组指定位置插入,并通过移位保持数组升序
public static int[] into(Scanner input,int[] array) {
System.out.println("请输入你要插入的位置");
int position = input.nextInt();
System.out.println("请输入你要插入的值");
int num = input.nextInt();
int newArray[] = new int[array.length*2];
for (int i = 0; i < array.length; i++) {
newArray[i] = array[i];
}
for (int i = newArray.length-1; i > position; i--) {
newArray[i] = newArray[i-1];
}
newArray[position] = num;
return newArray;
}