Hybrid Quick Sort + Insertion Sort: Runtime Comparison
Hybrid Quick Sort + Insertion Sort: Runtime Comparison
Comparison
Anirban Ray
16 March 2018
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 1 / 26
Introduction
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 2 / 26
Quick sort: Advantages and Disadvantages
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 3 / 26
Insertion Sort: Advantages and Disadvantages
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 4 / 26
Objective
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 5 / 26
Insertion Sort: Steps
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 6 / 26
Insertion Sort: Algorithm
INSERTIONSORT(A)
for j = 2 to A.length
key = A[j]
i = j - 1
while i > 0 and A[i] > key
A[i + 1] = A[i]
i = i - 1
A[i + 1] = key
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 7 / 26
Quick Sort: Steps
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 8 / 26
Quick Sort: Choice of Pivot
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 9 / 26
Quick Sort: Partition Algorithm
PARTITION(A, p, r)
x = A[p]
i = p - 1
j = r + 1
while TRUE
repeat
j = j - 1
until A[j] <= x
repeat
i = i + 1
until A[i] >= x
if (i < j) exchange A[i] with A[j]
else return j
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 10 / 26
Quick Sort: Main Sorting Algorithm
QUICKSORT(A, p, r)
if p < r
q = PARTITION(A, p, r)
QUICKSORT(A, p, q)
QUICKSORT(A, q + 1, r)
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 11 / 26
Hybrid Sort: Formulation
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 12 / 26
Hybrid Sort: Algorithm
HYBRIDSORT(A, p, r, k)
if (p < r)
if (r - p + 1 > k)
q = PARTITION(A, p, r)
HYBRIDSORT(A, p, q, k)
HYBRIDSORT(A, q + 1, r, k)
INSERTIONSORT(A)
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 13 / 26
Steps for finding the Optimum Cutoff Size
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 14 / 26
Graph 1
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 15 / 26
Graph 2
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 16 / 26
Graph 3
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 17 / 26
Graph 4
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 18 / 26
Observations from the Graphs: Initial sharp fall
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 19 / 26
Observations from the Graphs: Increasing trend in
run-time with increase in cut-off size
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 20 / 26
Observations from the Graphs: Skewed U-shaped pattern
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 21 / 26
Observations from the Graphs: No unique point of minima
Minimum occurs in all graphs, but those vary with each other
Quite expected in simulation studies
(100, 200) can be considered to be broad interval containing the
optimum
We will use 140 as cut-off in following section
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 22 / 26
Improvement over Quick Sort
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 23 / 26
Graph 5
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 24 / 26
Explanation of Graph
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 25 / 26
Summary
Anirban Ray Hybrid Quick Sort + Insertion Sort: Runtime Comparison 16 March 2018 26 / 26