• 两个有序数列的合并


    问题:a[]、b[]分别为有序排列的一个数组。现在要将a[]、b[]合并为c[]。例如:a[] = {1,3,4,7,10,15}; b[] = {2,5,8,20},我们需要得到的c[] = {1,2,3,4,5,7,8,10,15,20}.

    解决思路:1)先比较a[0]和b[0],如果a[0]相对较小,将a[0]的值赋值给c[0],然后比较a[1]和b[0]。2)当其中一个数组里的值已经全部赋值给了c[],那么直接将另外一个数组剩下的元素一次性赋予给c[]。

    下面用java实现。

    public class Test {
    
        public static void main(String[] args) {
            int[] a = {10,20,50,70,80,500,1001};
            int[] b = {10,40,60,90,100,120,200};
            
            int aLength = a.length;
            int bLength = b.length;
            
            int[] c = new int[aLength + bLength];
            
            int aIndex = 0;
            int bIndex = 0;
            
            for(int i = 0; i < aLength + bLength; i++) {
                if(a[aIndex] <= b[bIndex]) {
                    c[i] = a[aIndex];
                    if(aIndex < aLength - 1 ) {
                        aIndex++;
                    }
                    //当数组a的数据已经全部读取完毕时
                    else {
                        for(int t = i + 1; t < aLength + bLength; t++) {
                            c[t] = b[bIndex];
                            bIndex++;
                        }
                        break;
                    }
                }
                else {
                    c[i] = b[bIndex];
                    if(bIndex < bLength - 1 ) {
                        bIndex++;
                    }
                    //当数组b的数据已经全部读取完毕时
                    else {
                        for(int t = i + 1; t < aLength + bLength; t++) {
                            c[t] = a[aIndex];
                            aIndex++;
                        }
                        break;
                    }
                }
            }
            for(int i = 0;i < aLength + bLength; i++) {
                System.out.println(c[i]);
            }
        }
    }
  • 相关阅读:
    仿360拖拽
    js 鼠标拖拽元素移动
    js 随机生成颜色
    vue多视图
    vue 全局组件的注册
    一键分享到QQ空间、QQ好友、新浪微博、微信代码
    vuex如何管理需要即时更新的全局变量
    js检测是哪个浏览器
    for in,Object.keys()与for of的用法与区别
    js三元运算符
  • 原文地址:https://www.cnblogs.com/hushunfeng/p/3918947.html
Copyright © 2020-2023  润新知