Notes for 9 April
COEN 251: Data Structures and Algorithms
Spring 1998
Algorithm for quicksort (from the textbook, p 154):
QUICKSORT(A,p,r)
1 if p < r
2 then q <- PARTITION(A,p,r)
3 QUICKSORT(A,p,q)
4 QUICKSORT(A,q+1,r)
PARTITION(A,p,r)
1 x <- A[p]
2 i <- p - 1
3 j <- r + 1
4 while TRUE
5 do repeat j <- j - 1
6 until A[j] <= x
7 repeat i <- i + 1
8 until A[i] >= x
9 if i < j
10 then exchange A[i] <-> A[j]
11 else return j
Algorithm for randomized quicksort (from the textbook, p 162):
RANDOMIZED_QUICKSORT(A,p,r)
1 if p < r
2 then q <- RANDOMIZED_PARTITION(A,p,r)
3 RANDOMIZED_QUICKSORT(A,p,q)
4 RANDOMIZED_QUICKSORT(A,q+1,r)
RANDOMIZED_PARTITION(A,p,r)
1 i <- RANDOM(p,q)
2 exchange A[p] <-> A[i]
3 return PARTITION(A,p,r)