Sunday, August 13, 2006

source code for quicksort

#include "iostream"
using namespace std;

#define SIZE 100000

int partition(int *A, int p, int r)
{
int x = A[r];
int i,j, tmp;
for ( i = j = p; j < r; j++ ) {
if(A[j] <= x) {
tmp = A[j];
A[j] = A[i];
A[i] = tmp;
i++;
}
}
tmp = A[r];
A[r] = A[i];
A[i] = tmp;
return i;
}

void quicksort(int *A, int p, int r)
{
int q;
if ( p < r ) {
q = partition(A,p,r);
quicksort(A,p,q-1);
quicksort(A,q+1,r);
}
}

int main(void)
{
freopen("org.txt","w",stdout);
int A[SIZE];
int i;
for ( i = 0; i < SIZE; i++ ) {
A[i] = rand()%SIZE;
cout << A[i] << endl;
}
quicksort(A,0,SIZE-1);
freopen("res.txt","w",stdout);
for ( i = 0; i < SIZE; i++ ) {
cout << A[i] << endl;;
}
return 0;
}

0 Comments:

Post a Comment

<< Home