//#include <iostream>
//#include <vector>
//using namespace std;
//void merge(vector<int> &arr,int left,int mid,int right);
//void mergesort(vector<int>& arr);
//void process(vector<int>& arr, int left, int right);
//void mergesort(vector<int>& arr) {
// if (arr.empty() || arr.size() < 2) {
// return;
// }
// int size = arr.size();
// process(arr, 0, size-1);
//}
//void process(vector<int>& arr, int left, int right) {
// if (left == right) { return; }
// int mid = left + ((right - left) >> 1);
// process(arr, left, mid);
// process(arr, mid + 1, right);
// merge(arr, left, mid, right);
//
//}
//void merge(vector<int>& arr, int left, int mid, int right) {
// vector<int> help(right - left + 1);
// int p1 = left;
// int p2 = mid+1;
// int i = 0;
// while (p1 <= mid && p2 <= right) {
// if (arr[p1] <= arr[p2]) {
// help[i++] = arr[p1++];
// }
// else {
// help[i++] = arr[p2++];
// }
// }
// while (p1 <= mid) {
// help[i++] = arr[p1++];
// }
// while (p2 <= right) {
// help[i++] = arr[p2++];
// }
// int j = 0;
// for (j = 0; j < help.size(); j++) {
// arr[j+left ] = help[j];
// }
//}
//void print(vector<int>& arr) {
// for (vector<int>::iterator it = arr.begin(); it != arr.end(); it++) {
// cout << *it << " ";
// }
// cout << endl;
//}
//int main() {
// vector<int> arr;
//
// arr.push_back(2);
// arr.push_back(5);
// arr.push_back(89);
// arr.push_back(9);
// arr.push_back(16);
// arr.push_back(1);
// arr.push_back(5);
// mergesort(arr);
// print(arr);
// system("pause");
// return 0;
//}
归并排序的递归实现
最新推荐文章于 2024-10-27 18:45:12 发布
本文详细介绍了如何在C++中使用归并排序算法对整数向量进行排序,包括`merge`、`mergesort`和`process`函数的实现过程以及`print`函数用于展示排序结果。
摘要由CSDN通过智能技术生成