提交记录 19289


用户 题目 状态 得分 用时 内存 语言 代码长度
GNAQ 1001a. 测测你的排序2 Wrong Answer 0 758.46 us 52 KB C++ 597 B
提交时间 评测时间
2023-03-20 17:47:49 2023-03-20 17:47:51
#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(arr[i], (i == j) ? arr[l] : arr[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 OKScore: N/A

Testcase #1758.46 us52 KBWrong AnswerScore: 0


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