合并两个有序数组(C++版)
来源:互联网 发布:java命名规则 编辑:程序博客网 时间:2024/05/02 19:09
题目:
两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B。
请编写一个方法,将B合并入A并排序。
给定两个有序int数组A和B,A中的缓冲空用0填充,同时给定A和B的真实大小int n和int m,请返回合并后的数组。
思路:从后向前逐个比较填充A数组。
贴代码:
int cmpMax(int a, int b){return (a > b) ? a : b;}// n为数组A的真实长度// m为数组B的真实长度int* mergeAB(int* A, int* B, int n, int m) {int max = cmpMax(A[n - 1], B[m - 1]);int mxlen = cmpMax(n, m);int Adx = n - 1;int Bdx = m - 1;int cnt = n + m - 1;while (cnt >= 0){// 从后往前填充if (Adx >= 0 && Bdx >= 0){A[cnt] = cmpMax(A[Adx], B[Bdx]);if (A[cnt] == A[Adx]){Adx--;}else if (A[cnt] == B[Bdx]){Bdx--;}}else if(Adx < 0){A[cnt] = B[Bdx--];}else if(Bdx < 0){A[cnt] = A[Adx--];}cnt--;}return A;}
0 0
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 合并两个有序数组
- 两个有序数组合并
- 合并两个有序数组
- 合并两个有序数组(C++版)
- 两个有序数组合并成有序数组
- C语言实现:合并两个有序的数组,合并后的数组依然有序
- php 合并两个有序数组
- 高效合并两个有序数组
- Swift概念认识--哈希值
- Move Zeroes
- 互联网金融2.0 这是最好的时代
- 圆的反演
- Ionic时间选择插件
- 合并两个有序数组(C++版)
- 【bzoj3223】文艺平衡树
- LR VS D-Tree VS SVM
- Xcode模拟器出现乱码
- 关闭CentOS的错误提示音
- Invert Binary Tree
- 从尾到头打印链表
- UML学习:机房收费系统-类图
- genymotion模拟器链接本地tomcat服务器