两个已排序数组的归并
来源:互联网 发布:网络与新媒体职业规划 编辑:程序博客网 时间:2024/06/08 23:06
Cracking the coding interview 9.1
You are given two sorted arrays, A and B, and A has a large enough buffer at the end to hold B. Write a method to merge B into A in sorted order.
思路:从后向前归并。这里有个问题需要注意一下,两个数组的内存区域不能有重叠的部分,否则在归并的过程中会出错。所以在函数入口处做了这个检查。
void MergeArray(int *parrA, int nlengthA, int *parrB, int nlengthB){assert((parrB > parrA + nlengthA + nlengthB - 1) || (parrA > parrB + nlengthB - 1)); // make sure no overlap on ArrA and ArrBint *pA = parrA + nlengthA - 1;int *pB = parrB + nlengthB - 1;int *pOut = parrA + nlengthA + nlengthB - 1;while (pA >= parrA && pB >= parrB){if(*pA > *pB){*pOut = *pA;pA--;}else{*pOut = *pB;pB--;}pOut--;}while (pB >= parrB){*pOut = *pB;pB--;pOut--;}}
- 两个已排序数组的归并
- 取两个已排序数组的交集
- 两个已排序的数组进行合并
- 合并两个已排序的数组
- 将两个已排序数组原地归并到其中一个数组里去
- Merge Sorted Array 归并已排序的数组
- 合并两个已排序数组
- 数组的归并排序
- 数组的归并排序
- 数组的归并排序
- 如何取两个已排序数组的交集?
- 两个已排序数组,找出相同的部分
- 获取两个已排序数组的第K大值
- 合并两个有序数组(归并排序)
- 将两个已排序的链表归并成一个链表(C++面试题)
- 001-021-merger two sorted List 归并两个已排序的链表
- 归并之将两个有序数组合并(已测试)
- p48_合并两个已排序数组
- [Paper-CV] ECCV 2012 papers 1
- PHP的数据类型转换属于强制转换
- 使用ASIHTTPRequest 编译提示找不到"libxml/HTMLparser.h"的解决方法
- C++ 对象的内存布局(下)
- 网站广告的价值从何而来
- 两个已排序数组的归并
- php学习笔记(三十三)php自定义模板引擎的实现
- vaadin repository of maven
- UVa - 11235 - Frequent values(RMQ)
- vc编程中如何识别大写键状态
- DM与ML的主要区别
- C++中动态分配二维数组
- workqueue原理和分析
- x86\x64\ia64的区别