// Finds the kth element in an unsorted table by qsort (slow) // or using quicksort-style partitioning (usually fast) #include #include #include #include float elapsedCPU() { 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 generateRandom(minRange,maxRange) int minRange,maxRange; { /* returns integer in range minRange <= x <= maxRange*/ return minRange+abs(random()) % (maxRange-minRange+1); } void generateRandomTable(int *arr,int n,int maxrange,int seed) { int i; srandom(seed); for (i=0;i