有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。


題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。

思路:根據要插入的數的大小來判斷應該插入的位置
設計變量: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(); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM