解题思路
steps:
1: 找到mid
2:排序
3:合二为一,这一部分画个图就好啦
4:将temp里面的数字复制到q里面去
void merge_sort(int q[], int l, int r)
{
if(l >= r) return;
int mid = (l + r) >> 1;
merge_sort(q, l, mid), merge_sort(q, mid+1, r);
int i = l, k = 0, j = mid + 1;
while(i <= mid && j <= r)
{
if(q[i] <= q[j]) temp[k++] = q[i++];
else temp[k++] = q[j++];
}
while(i <= mid) temp[k++] = q[i++];
while(j <= r) temp[k++] = q[j++];
for(int i = l, j = 0; i <= r; i++, j++) q[i] = temp[j];
}