Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int arr[] = {1,33,21,6,18,9,100,232,13,43};
- void QuickSort (int begin, int end) {
- int middle = (begin + end)/2;
- int j = begin;
- int k = end;
- if( end == 0 ) {
- do {
- while( arr[j]<arr[middle] ) j++;
- while( arr[k]>arr[middle] ) k--;
- if( j>=k ) continue;
- else {
- int x = arr[j];
- arr[j] = arr[k];
- arr[k] = x;
- cout << j << " " << arr[j] << " " << k << " " << arr[k] << " " << endl;
- j++, k--;
- }
- }while (j<k);
- QuickSort(begin,k);
- }else QuickSort(j,end);
- }
- /*
- int i = left, j = right;
- int tmp;
- int pivot = arr[(left + right) / 2];
- /* partition */
- while (i <= j) {
- while (arr[i] < pivot)
- i++;
- while (arr[j] > pivot)
- j--;
- if (i <= j) {
- tmp = arr[i];
- arr[i] = arr[j];
- arr[j] = tmp;
- i++;
- j--;
- }
- };
- /* recursion */
- if (left < j)
- quickSort(arr, left, j);
- if (i < right)
- quickSort(arr, i, right);
- */
- int main () {
- QuickSort(1,9);
- for (int i=0; i<10; i++) cout<< arr[i] <<" ";
- cout<< endl;
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment