A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© daniel031699 中级黑马   /  2016-5-24 00:12  /  572 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

给定一个有序数组,如果往该数组存储一个元素,并保证数组还是有序的,那么这个元素的存储角标怎么获取?

3 个回复

正序浏览
        public static void main(String[] args) {
        int[] a = {1,3,7,15,20,30,45,89};
        int c = 29;
        int i =0;
       
        int[] a1 = new int[a.length+1];
        for (i = 0; i < a.length; i++) {
                if(i<a.length-1&&a[i]>c){
                        for (int j = 0; j < a1.length; j++) {
                                if(j<i){
                                        a1[j]=a[j];       
                                }else if(j==i){
                                        a1[j]=c;               
                                }else{
                                        a1[j]=a[j-1];
                                }
                        }
                }
                if (a[a.length-1]<c){
                        for (int j = 0; j < a1.length; j++) {
                        if(j<a1.length-1){
                                a1[j]=a[j]
                               
                        }else{
                                a1[j]=c;
                               
                        }
                        }
                }
               
        }

       
        }
}
回复 使用道具 举报
进击的鬼笔环肽 发表于 2016-5-24 22:11
数组长度不能变,怎么存啊,是要创建一个新的数组的吧

貌似只用求出需要插入的位置即可
回复 使用道具 举报
数组长度不能变,怎么存啊,是要创建一个新的数组的吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马