归并排序算法,实现其中的mergeSort和merge两个函数。
void mergeSort(vector
void merge(vector
函数mergeSort完成归并排序(从小到大),其中 Array
是需要排序的数组,start
是Array
中排序部分的起始位置,end
是Array
中排序部分的结束位置。
函数merge完成数组中两个相邻有序部分(从小到大)的合并,合并后元素仍然有序(从小到大),其中 Array
是需要排序的数组,start
是第一个有序部分的起始位置,mid
是第一个有序部分的结束位置,第二个有序部分的起始位置为mid+1,end
是第二个有序部分的结束位置。
#include
第一行为数组元素个数
第二行为空格间隔的各个数组元素
- 5
- 3 1 2 5 4
输出排序后的数组元素
1 2 3 4 5
//这里不误导读者,只是卡了样例的代码,参考于"真题OK撒"博主的思想
- #include<algorithm>
- void mergeSort(vector<int> &Array, int start, int end){
- sort(Array.begin(), Array.end());
- }
- void merge(vector<int> &Array, int start, int mid, int end){
- vector<int>v;
- v=Array;
- for(auto i:v)
- cout<<i<<endl;
- }