手写快排
基础的手写快排模板 快速排序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #include <bits/stdc++.h> using namespace std; using i64 = long long ; void Quick_Sort(i64 *arr, i64 begin, i64 end) { if(begin >= end) return; i64 tmp = arr[(begin + end) / 2]; i64 l = begin - 1, r = end + 1; while (l < r) { do(l++); while (arr[l] < tmp); do(r--); while (arr[r] > tmp); if (l < r) swap(arr[l], arr[r]); } Quick_Sort(arr, begin, r); Quick_Sort(arr, r + 1, end); } void solve() { i64 n; cin >> n; vector<i64> nums(n + 1, 0); for(int i = 1; i <= n; i++) { cin >> nums[i]; } Quick_Sort(nums.data(), 1, n); // sort(nums.begin() + 1, nums.end()); for(int i = 1; i <= n; i++) { cout << nums[i] << " \n"[i == n]; } } int main() { solve(); return 0; } 可优化方向 ...