归并排序merge_sort

#include<iostream>

using namespace std;

const int N = 100010;
int tmp[N];
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 k = 0, i = l, j = mid + 1;//i=l(这是L不是1)
	while (i <= mid && j <= r)
		if (q[i] <= q[j])tmp[k++] = q[i++];
		else tmp[k++] = q[j++];
	while (i <= mid)tmp[k++] = q[i++];
	while (j <= r)tmp[k++] = q[j++];

	for (i = l, j = 0; i <=r; i++, j++)q[i] = tmp[j];
}

 

posted @ 2024-02-29 22:06  这就叫做C++  阅读(2)  评论(0编辑  收藏  举报