#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; }