Mega Code Archive

 
Categories / C++ Tutorial / Development
 

Quick Sort

#include <iostream> using namespace std; int *swapnumbers(int rawdata[], int lower, int upper); int *quicksort(int rawdata[], int first, int last); int main() {     int unsorted[10],i;     int *sorted;     unsorted[0] = 9;     unsorted[1] = 8;     unsorted[2] = 7;     unsorted[3] = 7;     unsorted[4] = 6;     unsorted[5] = 5;     unsorted[6] = 5;     unsorted[7] = 4;     unsorted[8] = 4;     unsorted[9] = 2;     sorted = quicksort(unsorted, 0, 10);     cout << "This is your array sorted:"<< endl;     for(i = 0; i < 10; i++)     {         cout << sorted[i] << endl;     }     return 0; } int *quicksort(int rawdata[], int first, int last) {     int lower = first+1, upper = last;     int bound;     rawdata = swapnumbers(rawdata, first, (first+last)/2);     bound = rawdata[first];     while(lower <= upper)     {         while(rawdata[lower] < bound)             lower++;         while(bound < rawdata[upper])             upper--;         if(lower < upper)         {             rawdata = swapnumbers(rawdata, lower++, upper--);         }         else         {             lower++;         }     }     rawdata = swapnumbers(rawdata, upper, first);     if(first < upper-1)     {         rawdata = quicksort(rawdata, first, upper-1);     }     if(upper+1 < last)     {         rawdata = quicksort(rawdata, upper+1, last);     }     return(rawdata); } int *swapnumbers(int rawdata[], int lower, int upper) {     int temp;     temp = rawdata[lower];     rawdata[lower] = rawdata[upper];     rawdata[upper] = temp;     return(rawdata); } This is your array sorted: 0 2 4 5 6 7 8