题目连接
https://www.acwing.com/problem/content/789/
思路归并排序的核心就在于双指针处理的阶段,我们用两个指针分别表示左边区间的最小的位置和右边区间最小的位置,由于我们是先递归的,所以会直接递归到区间长度为1的,所以左边区间一定是排好序的,我们在归的过程中就对序列进行排序操作
#include
using namespace std;
const int N = 1e5+10;
int a[N],temp[N];
int n;
void merge_sort(int a[],int l,int r){
if(l >= r) return;
int mid = l + r >> 1;
merge_sort(a,l,mid);
merge_sort(a,mid+1,r);
int i = l,j = mid+1,k = 0;
while(i
关注
打赏