提交记录 19289
提交时间 |
评测时间 |
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);
}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Testcase #1 | 758.46 us | 52 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2025-05-13 20:31:53 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠