Can you implement this quick sort algorithm in C++ for me and write a test main program for it.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
100%
Can you implement this quick sort algorithm in C++ for me and write a test main program for it.
Algorithm QuickSort(S):
Input: A sequence S implemented as an array or linked list
Output: The sequence S in sorted order
if S.size() < 1 then
return
p-S.back(element()
Let L, E, and G be empty list-based sequences
while !S.empty ) do {scan S backwards, dividing it into L, E, and G}
if S.back().element() < p then
(L.jnsertBack(S.eraseBack())
elşe if S.back().element() = p then
EnsertBack(S.eraseBack())
else{the last element in S is greater than p}
G.JnsertBack(S.eraseBack())
QuickSort(L)
QuickSort(G)
while !L.empty() do {copy back to S the sorted elements less than p}
S.insertBack(L.eraseFront())
while !E.empty() do {copy back to S the elements equal to p}
S.insertBack(E.eraseFront())
while !G.empty () do {copy back to S the sorted elements greater than p}
S.insertBack(G.eraseFront()
{S is already sorted in this case}
{the pivot}
{Recur on the elements less than p}
{Recur on the elements greater than p}
return
{S is now in sorted order}
Code Fragment 11.5: Quick-sort for an input sequence S implemented with a linked
list or an array.
Transcribed Image Text:Algorithm QuickSort(S): Input: A sequence S implemented as an array or linked list Output: The sequence S in sorted order if S.size() < 1 then return p-S.back(element() Let L, E, and G be empty list-based sequences while !S.empty ) do {scan S backwards, dividing it into L, E, and G} if S.back().element() < p then (L.jnsertBack(S.eraseBack()) elşe if S.back().element() = p then EnsertBack(S.eraseBack()) else{the last element in S is greater than p} G.JnsertBack(S.eraseBack()) QuickSort(L) QuickSort(G) while !L.empty() do {copy back to S the sorted elements less than p} S.insertBack(L.eraseFront()) while !E.empty() do {copy back to S the elements equal to p} S.insertBack(E.eraseFront()) while !G.empty () do {copy back to S the sorted elements greater than p} S.insertBack(G.eraseFront() {S is already sorted in this case} {the pivot} {Recur on the elements less than p} {Recur on the elements greater than p} return {S is now in sorted order} Code Fragment 11.5: Quick-sort for an input sequence S implemented with a linked list or an array.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Randomized Select Algorithm
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education