数组之倒序与插入(首位插入,末尾插入,指定位置插入)

tech2022-07-14  178

数组倒序

元素值顺序不变

将数组从最后一位开始循环向前输出 (视觉效果,数组中值顺序不变)

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; }
最新回复(0)