Description of Quicksort - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Description of Quicksort

Description:

Compute the index q as part of this partitioning procedure. ... very different, we can try to minimize the odds of encountering the worst case. ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 17
Provided by: susanb69
Category:

less

Transcript and Presenter's Notes

Title: Description of Quicksort


1
Description of Quicksort
  • Divide Partition Ap..r into two (possibly
    empty) subarrays Ap..q-1 and Aq1 .. r such
    each element of Ap..q-1 Aq and Aq each
    element of Aq1..r. Compute the index q as part
    of this partitioning procedure.
  • Conquer Sort the two subarrays by recursive
    calls to quicksort.
  • Combine Since the subarrays are sorted in
    place, no work is needed to combine them Ap..r
    is now sorted.

2
QUICKSORT(A,p,r) 1 if p lt r 2 then q ?
PARTITION(A,p,r) 3 QUICKSORT(A,p,q-1)
4 QUICKSORT(A,q1,r) Initial call
QUICKSORT(A,1, lengthA)
3
  • PARTITION(A,p,r)
  • 1 x ? Ar
  • 2 i ? p - 1
  • 3 for j ? p to r-1
  • do if Aj ? x
  • then i ? i 1
  • exchange Ai ? Aj
  • exchange Ai1 ? Ar
  • return i1

4
Regions of Subarray Maintained by PARTITION
  • Each value in Ap..i x.
  • Each value in Ai1..j-1 gt x.
  • Ar x.
  • Aj..r-1 can take on any values.

5
Loop Invariant for Partition
  • At the beginning of each iteration of the loop in
    lines 3-6, for any array index k,
  • If p k i, then Ak x.
  • If i 1 k j-1, then Akgtx.
  • If kr, then Akx.

6
Loop Invariant Correctness
  • Initialization Prior to the first iteration of
    the loop, i p-1, and jp. There are no values
    between p and i, and no values between i1 and
    j-1, so the first two conditions of the loop
    invariant are trivially satisfied. The
    assignment in line 1 satisfies the third
    condition.

7
Loop Invariant Correctness
  • Maintenance There are two cases to consider
    depending on the outcome of the test in line 4.
    When Ajgtx the only action in the loop is to
    increment j. After j is incremented, condition 2
    holds for all Aj-1 and all other entries remain
    unchanged. When Aj x, i is incremented, Ai
    and Aj are swapped, and then j is incremented.
    Because of the swap, we now have that Ai x,
    and condition 1 is satisfied. Similarly, we also
    have that Aj-1gtx, since the item that was
    swapped into Aj-1 is, by the loop invariant,
    greater than x.

8
Loop Invariant Correctness
  • Termination At termination, jr. Therefore,
    every entry in the array is in one of the three
    sets described by the invariant, and we have
    partitioned the values in the array into three
    sets those less than or equal to x, those
    greater than x, and a singleton set containing x.

9
Performance of Quicksort
  • Depends on whether the partitioning is balanced
    or unbalanced
  • Worst case Each time the partitioning is done,
    one subarray contains n-1 of the n elements from
    the previous call and the other is empty.
  • Best case Each time the partitioning is done,
    each subarray contains n/2 of the elements from
    the previous call.

10
Worst Case
  • Cost of Partition T(n)
  • Recurrence for Quicksort
  • T(n) T(n-1) T(0) T(n)
  • T(n-1) T(n)

11
Worst Case (continued)
  • Solving recurrence by iteration

12
Best Case
  • Recurrence for Quicksort
  • T(n) 2T(n/2) T(n)
  • Solving recurrence by Master Method case 2
  • T(n) O(n lg n)

13
Average Case
  • Suppose split is always 9-to-1
  • Recurrence
  • T(n) T(9n/10) T(n/10) T(n)
  • T(9n/10) T(n/10) cn

14
Randomized Version of Quicksort
  • When an algorithm has an average case performance
    and worst case performance that are very
    different, we can try to minimize the odds of
    encountering the worst case.
  • For the quicksort Randomly choose pivot element
    in Ap..r.

15
Randomized Partition
  • RANDOMIZED-PARTITION (A, p, r)
  • i ? RANDOM (p, r)
  • exchange Ar ? Ai
  • return PARTITION (A, p, r)

16
Randomized Quicksort
  • RANDOMIZED-QUICKSORT (A, p, r)
  • if p lt r
  • then q ? RANDOMIZED-PARTITION (A, p, r)
  • RANDOMIZED-QUICKSORT (A, p, q-1)
  • RANDOMIZED-QUICKSORT (A, q1, r)
Write a Comment
User Comments (0)
About PowerShow.com