快速排序

快速排序

  //        快速排序
//
//*/
//#include
//#include
//#pragma warning(disable:4996)
// 
//using namespace std;
//
//const int N = 1000006 + 10;
//
//int q[N];
//int n;
//void quick_sort(int q[], int l, int r)
//{
//	if (l >= r)
//		return;
//	int x = q[l+r>>1],i=l-1,j=r+1;
//	while (i < j)
//	{
//		do i++; while (q[i] < x);
//		do j--; while (q[j] > x);
//			if(i < j) swap(q[i], q[j]);
//	}
//	quick_sort(q, l, j);
//	quick_sort(q, j + 1, r);
//}
//int main()
//{
//	
//	scanf("%d", &n);
//	for (int i = 0; i < n; i++)
//		scanf("%d", &q[i]);
//	quick_sort(q, 0, n - 1);
//	for (int i = 0; i < n; i++)
//		printf("%d ", q[i]);
//	puts("");
//	return 0;
//}

归并排序

//归并排序
//#include
//#pragma warning(disable:4996)
//using namespace std;
//const int N = 1e6;
//int q[N], st[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;
//	while (i <= mid&&j <= r)
//		if (q[i]>=q[j])
//			st[k++] = q[i++];
//		else
//			st[k++] = q[j++];
//	while (i <= mid)st[k++] = q[i++];
//	while (j <= r)st[k++] = q[j++];
//	for (i = l, k = 0; i <= r; i++,k++)q[i] = st[k];
//
//}
//int main()
//{
//	int t;
//	scanf("%d", &t);
//	for (int i = 0; i < t; i++)
//		scanf("%d", q + i);
//	merge_sort(q, 0, t - 1);
//	for (int i = 0; i < t; i++)
//		printf("%d ", q[i]);
//}
/*

你可能感兴趣的:(快速排序)