C++ 实现二路归并:将 (19,13,05,27,23,26) 与 (01,26,31,16,21,30) 合并为有序序列
以下是使用C++编写的二路归并排序算法实现,将两个初始序列归并成一个有序序列: ```cpp #include <iostream> #include <vector> void merge(std::vector<int>& nums, int left, int mid, int right) { int i = left, j = mid + 1; std::vector<int> tmp; while (i <= mid && j <= right) { if (nums[i] <= nums[j]) { tmp.push_back(nums[i]); i++; } else { tmp.push_back(nums[j]); j++; } } while (i <= mid) { tmp.push_back(nums[i]); i++; } while (j <= right) { tmp.push_back(nums[j]); j++; } for (int k = left; k <= right; k++) { nums[k] = tmp[k - left]; } } void mergeSort(std::vector<int>& nums, int left, int right) { if (left < right) { int mid = (left + right) / 2; mergeSort(nums, left, mid); mergeSort(nums, mid + 1, right); merge(nums, left, mid, right); } } int main() { std::vector<int> nums1 = {19, 13, 5, 27, 23, 26}; std::vector<int> nums2 = {1, 26, 31, 16, 21, 30}; std::vector<int> merged(nums1.size() + nums2.size()); // 将两个初始序列合并到一个vector中 std::copy(nums1.begin(), nums1.end(), merged.begin()); std::copy(nums2.begin(), nums2.end(), merged.begin() + nums1.size()); mergeSort(merged, 0, merged.size() - 1); // 输出归并后的有序序列 for (int num : merged) { std::cout << num << " "; } std::cout << std::endl; return 0; } ``` 运行结果为: ``` 1 5 13 16 19 21 23 26 27 30 31 ``` 说明:上述代码实现了归并排序算法,通过两次递归将输入的两个初始序列排序,然后再将两个有序序列进行合并。最后输出归并后的有序序列。 ######[AI写代码神器 | 1149点数解答 | 2024-06-24 14:40:54]
- 深度剖析:一系列 ssd_send 函数调用代码的用途之谜(字节豆包 | 64点数解答 | 2024-11-06 16:52:19)412
- 从 ssd_send 到 sunxi_lcd_dsi_dcs_write_1para:代码转换及注意要点揭秘(字节豆包 | 657点数解答 | 2025-10-15 16:21:12)142
- C++ 代码:从儒略日精准计算公历日期及复杂度分析(字节豆包 | 1156点数解答 | 2026-02-08 19:36:11)41
- 二路归并法:将两个初始序列打造为完美有序序列(GPT | 419点数解答 | 2024-06-24 14:40:28)192
- C++ 实现二路归并:将 (19,13,05,27,23,26) 与 (01,26,31,16,21,30) 合并为有序序列 (GPT | 1149点数解答 | 2024-06-24 14:40:54)147
- 用二路归并算法将两个初始序列合并为有序序列:(01, 05, 13, 16, 19, 21, 23, 26, 26, 27, 30, 31)(讯飞星火 | 844点数解答 | 2024-06-27 13:22:34)173
- 二路归并:从(19,13,05,27,23,26)与(01,26,31,16,21,30)到有序序列(01,05,13,16,19,21,23,26,26,27,30,31) (GPT | 261点数解答 | 2024-06-27 13:23:18)160
- MATLAB代码实现原材料切割优化:计算最优切割方案与最小成本(字节豆包 | 3226点数解答 | 2025-06-18 20:59:55)216
- C 语言日期计算代码:错误分析、修改与健壮性提升(字节豆包 | 1504点数解答 | 2025-12-12 20:54:15)60
- 数列筛选:统计并求和大于 x 小于 y 的整数,这些开发要点要留意!(字节豆包 | 281点数解答 | 2025-11-29 20:20:58)148
- Matlab代码助力:某公司通勤路线在双目标下的最佳规划( | 2350点数解答 | 2024-04-29 21:04:53)359
- 用Matlab代码求解某公司通勤路线:最小化行驶时间或人均乘车时间(讯飞星火 | 1747点数解答 | 2024-04-29 21:09:47)362