original QuickSort implementation. Hoare’s algorithm keeps two indices and iterates through the loop from the front and the back simultaneously towards the center. If it finds a pair of elements out of place it swaps them. It terminates when the index keeping track of the low side is greater than or equal to the index keeping track of the

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 do not change any of the method signatures in either class. Implement the methods described below.

 

public static int partitionHoare(int[] arr, int low, int high)

Hoare’s partition algorithm is an alternative form of the partition algorithm. It was actually the algorithm that was used in the original QuickSort implementation. Hoare’s algorithm keeps two indices and iterates through the loop from the front and the back simultaneously towards the center. If it finds a pair of elements out of place it swaps them. It terminates when the index keeping track of the low side is greater than or equal to the index keeping track of the high side. In this method, the pivot is not necessarily in the correct location at the end of the partition and the index returned does not represent the pivot element, but the largest (farthest right) index in the low side. Every element on the low side is less than or equal to the pivot while every element on the high side is greater than or equal to the pivot. Implement Hoare’s partition algorithm using the pseudocode below.

paritionHoare(arr,p,r)

pivot = arr[p]

i = p-1

j = r+1

while true:

repeat j = j-1 until arr[j]≤pivot

repeat i = i+1 until arr[i]≥pivot

if i<j

swap arr[i] and arr[j] else

return j

 

What sort of input arrays will enable Hoare’s algorithm to still create relatively equal size partitions whereas Lumoto’s algorithm will create unequal partitions? Write your answer in the location specified in Partition.java.

Below is Method signature class:

package sorting;

import java.util.Arrays;

public class Partition {
    
 
    /***********ANSWER QUESTION HERE*****************/
    /*
     * What sort of input arrays will enable Hoare’s algorithm to still create relatively 
     * equal size partitions whereas Lomuto’s algorithm will create unequal partitions?
     */
    
    public static int partitionHoare(int[] arr,int low, int high) {
        return 0;
        
    }
    


}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 5 steps with 2 images

Blurred answer
Knowledge Booster
Quicksort
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