首页 > 代码库 > Leetcode:Merge Sorted Array 归并排序
Leetcode:Merge Sorted Array 归并排序
Sorted Array:
Given two sorted integer arrays A and B, merge B into A as one sorted array.Note:You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
题解分析:
归并排序
注意:排序结果不能申请另外的内存空间,直接存储在数组A中,所以此时 应该从后往前进行结果数组的填充,防止覆盖掉原数组A中元素
class Solution {public: void merge(int A[], int m, int B[], int n) { assert(A != NULL && B != NULL && m >= 0 && n >= 0); int ia = m - 1; int ib = n - 1; int idx = m + n - 1; while (ia >= 0 && ib >= 0) { if (A[ia] >= B[ib]) { A[idx--] = A[ia--]; } else { A[idx--] = B[ib--]; } } while (ia >= 0) { A[idx--] = A[ia--]; } while (ib >= 0) { A[idx--] = B[ib--]; } }};
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。