提交记录 19288


用户 题目 状态 得分 用时 内存 语言 代码长度
GNAQ 1001a. 测测你的排序2 Compile Error 0 0 ns 0 KB C++ 591 B
提交时间 评测时间
2023-03-20 17:47:19 2023-03-20 17:47:20
#include <algorithm>
#include <ctime>
#include <random>
using namespace std;

template <typename T>
void QSort(int l, int r, T *arr, mt19937 &mtgen)
{
	if (l >= r)
		return;
	uniform_int_distribution<int> dist(0, r - l);
	T pivot = dist(mtgen) + l;
	swap(arr[pivot], arr[l]);
	int i = l, j = r;
	while (i < j)
	{
		while (i < j && arr[j] >= arr[l])
			j--;
		while (i < j && arr[i] <= arr[l])
			i++;
		swap(a[i], (i == j) ? a[l] : a[j]);
	}
	QSort(l, i - 1, arr, mtgen);
	QSort(j + 1, r, arr, mtgen);
}

void sort(unsigned *a, int n)
{
	mt19937 mtgen(time(NULL));
	QSort(1, n, a, mtgen);
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2024-04-26 16:45:11 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用