/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#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;
}