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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#include <iostream> #include <vector> using namespace std;
int getRand(int min, int max) { return ( rand() % (max - min + 1) ) + min ; }
void quickSort(vector<int>& nums, int start, int end) { if(start > end) return; int i = start, j = end; int key = nums[start]; while(i < j) { while(i < j && nums[j] < key) j--; while(i < j && nums[i] >= key) i++; if(i<j) { swap(nums[i],nums[j]); } } swap(nums[i], nums[start]); quickSort(nums, start, i-1); quickSort(nums, i+1, end); }
void sort(vector<int> & nums) { if(nums.empty() || nums.size() < 2) { return; } quickSort(nums, 0, nums.size() - 1); }
int main() { vector<int> nums; for (int i = 0; i < 20; i++) { nums.push_back(std::move(getRand(0,100))); } sort(nums); for (auto it : nums) cout << it << endl;
return 0; }
|