合并两个有序数组

算法思想:每次从数组A或者数组B中取一个元素放入合并后的数组。

假设:两个数组都是从小到大排列的。

C#实现:

 
  /// <summary>
       /// 合并两个有序数组,数组都是从小到大排列的,合并后的数组也是从小到大排列
       /// </summary>
       /// <param name="a">数组</param>
       /// <param name="b">数组</param>
       /// <returns>合并后的数组</returns>
       private int[] mergeArray(int[] a,int[] b)
       {
           int[] c = new int[a.Length+b.Length];//合并后的数组

           int a_num = 0; //记录当前从a中取的元素的位置
           int b_num = 0; //记录当前从b中取的元素的位置

           for (int i = 0; i < c.Length;i++ )
           {
               //以下代码从a数组或者b数组中取元素
               if(a_num<a.Length && b_num<b.Length && a[a_num]<b[b_num] || b_num >= b.Length)
               {
                   c[i] = a[a_num];
                   a_num++;
               }
               else
               {
                   if(b_num<b.Length)
                   {
                       c[i] = b[b_num];
                       b_num++;
                   }
               }

           }

           return c;
       }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值