Merge Sorted Array 归并已排序的数组
2014-01-20 16:42
169 查看
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int a=m-1;
int b=n-1;
int cur=m+n-1;
while(a>=0&&b>=0)
{
if(A[a]>=B[b])
{
A[cur--]=A[a--];
}
else
{
A[cur--]=B[b--];
}
}
//从后往前归并,既不会覆盖元素,又不会使用额外空间。
while(b>=0)
{
A[cur--]=B[b--];
}
}
};
public:
void merge(int A[], int m, int B[], int n) {
int a=m-1;
int b=n-1;
int cur=m+n-1;
while(a>=0&&b>=0)
{
if(A[a]>=B[b])
{
A[cur--]=A[a--];
}
else
{
A[cur--]=B[b--];
}
}
//从后往前归并,既不会覆盖元素,又不会使用额外空间。
while(b>=0)
{
A[cur--]=B[b--];
}
}
};
相关文章推荐
- 两个有序数组合并为一个及归并排序实例
- 面试题:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序
- 一种高效率的排序方法-归并排序的实现(主要解决matlab中多维数组排序的问题)
- hiho一下 第三十九周 #1141 : 二分·归并排序之逆序对 【归并排序----树状数组】
- POJ 2299 Ultra-QuickSort 【归并排序求逆序数 OR 树状数组求逆序数】
- 将两个已排序数组原地归并到其中一个数组里去
- 利用归并排序思想求数组中的逆序对
- java实现通过归并排序计算数组逆数对个数
- 数组排序(插入、选择、希尔、堆、归并、快速、冒泡)
- C/C++ 数组排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之希尔排序
- 归并排序之数组的逆序对
- C/C++ 数组,链表排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之归并排序
- 两个已排序数组的归并
- 归并排序思想应用之----求数组中的逆序对
- 数据结构-数组排序(冒泡 选择 插入 归并(合并有序数组))-C语言
- poj2299Ultra-QuickSort【树状数组求逆序数、离散化】、【归并排序模板】
- C/C++ 数组排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之堆排序
- 剑指Offer--数组中的逆序对--归并排序!
- 归并排序 & 数组中的逆序对 【java实现】
- C/C++ 数组排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之快速排序