// Ordinary recursive quicksort // See CLRS for details #include #include #include float CPUtime() { struct rusage rusage; getrusage(RUSAGE_SELF,&rusage); return rusage.ru_utime.tv_sec+rusage.ru_utime.tv_usec/1000000.0 + rusage.ru_stime.tv_sec+rusage.ru_stime.tv_usec/1000000.0; } int *arr; int arrSize; int oldPartition(arr,p,r) // From CLR, 1st edition int *arr,p,r; { int x,i,j,temp; /* printf("Input\n"); for (i=p;i<=r;i++) printf("%d %d\n",i,arr[i]); */ x=arr[p]; i=p-1; j=r+1; while (1) { while (arr[--j]>x); while (arr[++i]