C++ generate and quick sort in template
#pragma once #include <iostream> #include <random> #include <algorithm> using namespace std; random_device rd; mt19937_64 mt(rd()); template<typename T> T getRandom(T min, T max) { uniform_int_distribution<T> uid(min, max); return uid(mt); } template<typename T> void swap(T* left, T* right) { if (*left == *right) { return; } T temp = *left; *left = *right; *right = temp; } template<typename T> int partitionAsc(T* arr, int low, int high) { T pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] < pivot) { i = i + 1; swap<T>(&arr[i], &arr[j]); } } swap<T>(&arr[i+1], &arr[high]); return i + 1; } template<typename T> void quickSort(T* arr, int low, int high) { if (low < high) { int pivot = partitionAsc(arr, low, high); quickSort(arr, low, pivot - 1); quickSort(arr, pivot + 1, high); } } void arrayDemo(int len) { uint32_t * arr = new uint32_t[len]; for (int i = 0; i < len; i++) { arr[i] = getRandom<uint32_t>(0, UINT32_MAX); } cout << "Before quick sort:" << endl; for (int i = 0; i < len; i++) { cout << arr[i] << "\t"; } cout << endl << endl; cout << "After quick sort:" << endl; quickSort<uint32_t>(arr, 0, len - 1); for (int i = 0; i < len; i++) { cout << arr[i] << "\t"; } cout << endl << endl; delete[]arr; } int main() { arrayDemo(1000); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2020-10-14 C# validate the string value whether it is valid json
2020-10-14 Adjust the wpf application adapt to the screen size