#include <iostream>
#include <time.h>
#include <vector>
using namespace std;
int parition(vector<int> &array,int left,int right)
{
int tmp = array[left];
int i = left,j = left+1;
while(j <= right)
{
if(array[j] < tmp)
{
i++;
swap(array[i],array[j]);
}
j++;
}
swap(array[left],array[i]);
return i;
}
void quickpass(vector<int> &array,int left,int right)
{
if(left < right)
{
int flag = parition(array,left,right);
quickpass(array,left,flag - 1);
quickpass(array,flag + 1 , right);
}
}
void quicksort(vector<int> &array)
{
quickpass(array,0,19);
}
int main()
{
vector<int> array;
srand((unsigned int)time(NULL));
for(int i = 0; i < 20; i++)
{
array.push_back(rand()%100);
}
quicksort(array);
for(int i = 0; i < 20; i++)
{
cout<<array[i]<<endl;
}
}
单向扫描快速排序
最新推荐文章于 2021-09-08 20:16:05 发布