Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

bartleby

Concept explainers

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.
expand button
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
Check Mark
Knowledge Booster
Background pattern image
Computer Science
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
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education