題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。
思路:根據要插入的數的大小來判斷應該插入的位置
設計變量:n -- 待插入的數
index -- 插入的位置
b[] -- 新的數組
public class 第三十題插入待優化 { public static void main(String[] args) { /*思路:根據要插入的數的大小來判斷應該插入的位置 設計變量:n -- 待插入的數 index -- 插入的位置 b[] -- 新的數組 */
int[] a = {1,2,5,8,9,11,13,19}; int[] b = new int[a.length + 1]; System.out.print("請輸入一個數字(6或者10或者15):"); Scanner in = new Scanner(System.in); //獲取待插入的數字
int n = in.nextInt(); //獲取插入的位置
int index = 0; for(int i=1; i<a.length-1; i++) { if(a[i] <= n && a[i+1] >=n) { index = i+1; break; } } //{1,2,5,8,9,11,13,19} //{1,2,5,6,8,9,11,13,19} //拷貝給新的數組 //拷貝前面部分
for(int k=0; k<index; k++) { b[k] = a[k]; } //插入一個數字
b[index] = n; //拷貝后面部分
for(int m=index+1; m <b.length; m++) { b[m] = a[m-1]; } //打印數組
for(int o:b) { System.out.print(o + " "); } in.close(); } }