Please help me implement this C++ function that is supposed to partition the array a into smaller than pivot and others. // f is the beginning of the section to be partitioned // r is the end of the section to be partitioned // return the first slot of the Large section   int partition(int a[], int f, int r)   { int pivot = a[f]; // pivot is the first element int small = f; // small pointer from the left int large = r; // large pointer from the right while (small <= large) //until they cross { // loop for finding out-of-place pairs and swap them // until the small and large cross // you will be checking a[small] and a[large] against pivot // if both are bad (and not crossed yet), swap and then move // if a[small] is OK, move small // if a[large] is OK, move large // TODO: ** } //end of while // return the partition point where // those smaller than pivot are before what is returned // there is a special cases (small is at the beginning) // and a regular case // TODO: }

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

Please help me implement this C++ function that is supposed to partition the array a into smaller than pivot and others.

// f is the beginning of the section to be partitioned

// r is the end of the section to be partitioned

// return the first slot of the Large section

 

int partition(int a[], int f, int r)   {

int pivot = a[f];

// pivot is the first element

int small = f;

// small pointer from the left

int large = r;

// large pointer from the right

while (small <= large)

//until they cross

{

// loop for finding out-of-place pairs and swap them

// until the small and large cross

// you will be checking a[small] and a[large] against pivot

// if both are bad (and not crossed yet), swap and then move

// if a[small] is OK, move small

// if a[large] is OK, move large

// TODO: **

}

//end of while

// return the partition point where

// those smaller than pivot are before what is returned

// there is a special cases (small is at the beginning)

// and a regular case

// TODO:

}

AI-Generated Solution
AI-generated content may present inaccurate or offensive content that does not represent bartleby’s views.
steps

Unlock instant AI solutions

Tap the button
to generate a solution

Knowledge Booster
Array
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.
Similar questions
  • SEE MORE QUESTIONS
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