#include<iostream>
#include<deque>
#include<cstdlib>
using namespace std;
void swap(int& small, int& big)
{
int temp = small;
small = big;
big = temp;
}
int partion(int arr[], int left, int right)
{
int i = left-1 , j = right, base = arr[right];
for(;;)
{
while (arr[++i] < base && i < j ) ;
while (arr[--j] > base && i < j ) if ( j == left ) break;
if(i >= j) break;
swap( arr[j], arr[i]); //small, big
}
swap(arr[right], arr[i]);
return i;
}
void quick_sort(int arr[], int left, int right)
{
if (left < right)
{
int i = partion(arr, left, right);
quick_sort(arr, left, i -1);
quick_sort(arr, i+1, right);
}
}
int main()
{
const int size = 100;
int s[size];
srand(0);
for (int i = 0; i < size; i++)
s[i] = rand()%200;
quick_sort(s, 0, size-1);
for (int i = 0; i < size; i++)
cout << s[i] << " ";
cin.get();
return 0;
}
快速排序(变种)
最新推荐文章于 2022-12-06 17:57:15 发布