有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。


题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

思路:根据要插入的数的大小来判断应该插入的位置
设计变量: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