将两个数组合并并排序
2015-09-03 16:54
190 查看
public static void merge(int[] a,int[] b,int lastA,int lastB)
{
int indexA=lastA-1;//数组a最后元素的索引
int indexB=lastB-1;//数组b最后元素的索引
int indexMerged=lastB+lastA-1;//合并后数组的最后元素索引
/*合并a和b,从这两个数组的最后元素开始*/
while(indexA>=0&&indexB>=0)
{
if(a[indexA]>b[indexB])
{
a[indexMerged]=a[indexA];
indexMerged--;
indexA--;
}
else
{
a[indexMerged]=b[indexB];//复制元素
indexMerged--;
indexB--;
}
}
/*将数组b剩余元素复制到适当的位置*/
while(indexB>=0)
{
a[indexMerged]=b[indexB];
indexMerged--;
indexB--;
}
}
注意:处理完B的剩余元素后,你不需要复制A的剩余元素,因为这些元素已经在那里了。
相关文章推荐
- 第31-35课
- BZOJ 1026: [SCOI2009]windy数( dp )
- 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机
- 检测出运动目标后提取边界 两个函数 cvFindContours和cvBoundingRect
- Windows内核编程基础篇之获得当前滴答数
- VS2010中“工具>选项中的VC++目录编辑功能已被否决”解决方法
- rdb快照持久化
- hdu 1864 最大报销额(非整数背包)
- NOI 2006 最大获利(最大权闭合)
- 寻找数组中的最大值和最小值
- iOS 应用内购买基础教程 swift篇
- 4000 swift 学习<二> if分支, for循环,
- 蓝懿让我相信0基础的学iOS
- iOS开发有用工具网站资源
- LeetCode Delete Node in a Linked List
- 黑马程序员——面向对象(继承)-第17天
- WebService的缓存机制
- sql 链表查询语句
- morose things go by
- 切换Android SDK Manager下载源