LeetCode-Merge Sorted Array-合并有序表-归并排序
2014-10-15 21:37
435 查看
https://oj.leetcode.com/problems/merge-sorted-array/
归并排序的一步操作,需要事先把A[]的元素移到数组末端,前段空出来填充结果。需要注意的是如果从0~m的转移会在n比较小的时候有问题。所以要从m~0转移。使用memcpy在GCC下就是从0~m开始转移,这个行为跟MSVC不一样。
归并排序的一步操作,需要事先把A[]的元素移到数组末端,前段空出来填充结果。需要注意的是如果从0~m的转移会在n比较小的时候有问题。所以要从m~0转移。使用memcpy在GCC下就是从0~m开始转移,这个行为跟MSVC不一样。
class Solution { public: void merge(int A[], int m, int B[], int n) { //memcpy(A+n,A,m*sizeof(int)); //error in gcc, succeed in msvc because of filling order for(int i=m-1;i>=0;i--) A[i+n]=A[i]; int p=n; int q=0; int r=0; while(p<n+m && q<n){ if (A[p]>B[q]) { A[r]=B[q]; r++;q++; } else { A[r]=A[p]; r++;p++; } } while(p<n+m) A[r++]=A[p++]; while(q<n) A[r++]=B[q++]; } };
相关文章推荐
- [LeetCode]Merge Sorted Array(合并两个有序的数组)
- leetcode Merge Sorted Array 合并有序数组
- [leetcode]Merge Sorted Array (两个有序数组的合并 C语言实现)
- Leetcode 88 Merge Sorted Array 合并两个有序数组
- [LeetCode] Merge Sorted Array 合并两个有序数组
- leetcode88---Merge Sorted Array(合并有序数组)
- [LeetCode-88] Merge Sorted Array(合并有序数组)
- 【LeetCode】- Merge Sorted Array (合并有序数组).
- leetcode:Merge Sorted Array(合并两个有序数组到其中一个数组中)【面试算法题】
- 【leetcode】Merge Sorted Array(合并两个有序数组到其中一个数组中)
- LeetCode Merge Sorted Array(合并有序数组)
- LeetCode Merge Sorted Array 合并已排序的数组
- leetcode 88. Merge Sorted Array合并有序数组
- LeetCode 21. Merge Two Sorted Lists(合并两个有序单链表)
- Merge Sorted Array合并两个有序数组
- Merge Two Sorted Lists 合并两个有序链表@LeetCode
- LeetCode Merge Two Sorted Lists(合并两个有序链表)
- Leetcode 合并有序数组 Merge 2 arrays in 1 array
- LeetCode 刷题: 合并两个有序链表 (merge two sorted list)
- merge-sorted-array——合并两个有序数组