1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Degger [83]
3 years ago
11

In the QuickSort algorithm, the partition method we developed in class chose the start position for the pivot. We saw that this

leads to worst case performance, O(n2), when the list is initially sorted. Try to improve your QuickSort by choosing the value at the middle, instead of the value at the start, for the pivot. Test your solution with the Driver you used for homework. Upload the output produced by the Driver, and your modified QuickSort source file.
====================================================

ORIGINAL

public class QuickSort> implements Sorter

{

List list;

public void sort(List list)

{

this.list = list;

qSort(0, list.size() -1);

}

public void qSort(int start, int end)

{

if(start >= end)

return;

int p = partition(start,end);

qSort(start, p-1);

qSort(p+1,end);

}

public int partition(int start,int end)

{

int p = start;

E pivot = list.get(p);

for(int i = start+1; i <= end; i++)

if(pivot.compareTo(list.get(i)) > 0)

{

list.set(p, list.get(i));

p++;

list.set(i,list.get(p));

}

list.set(p,pivot);

return p;

}

}

====================================================

Driver

public class DriverQuicksort

{ static final int MAX = 20;



public static void main(String[] args)

{

Random rand = new Random(); // random number generator

List numbers = new ArrayList ();

Sorter sorter;

sorter = new QuickSort ();



// Test QuickSort with random input

System.out.println ("Testing Quicksort");

for (int i=0; i
numbers.add (rand.nextInt(50)); // random int in [0..49]

System.out.println ("Before sorting:");

System.out.println (numbers);

sorter.sort (numbers );

System.out.println ("After sorting:");

System.out.println (numbers);

System.out.println ();





// Test QuickSort with ascending input

numbers.clear();

for (int i=0; i
numbers.add (i * 10); // initially in ascending order

System.out.println ("Before sorting:");

System.out.println (numbers);

sorter.sort ( numbers);

System.out.println ("After sorting:");

System.out.println (numbers);

System.out.println ();



// Test QuickSort with descendng input

numbers.clear();

for (int i=0; i
numbers.add (MAX-i); // initially in ascending order

System.out.println ("Before sorting:");

System.out.println (numbers);

sorter.sort ( numbers);

System.out.println ("After sorting:");

System.out.println (numbers);

System.out.println ();



numbers.clear();

numbers.add(75);

numbers.add(93);

numbers.add(35);

numbers.add(0);

numbers.add(75);

numbers.add(-2);

numbers.add(93);

numbers.add(4);

numbers.add(6);

numbers.add(76);

System.out.println ("Before sorting:");

System.out.println (numbers);

sorter.sort(numbers);

System.out.println ("After sorting:");

System.out.println (numbers);

System.out.println ();

}

}
Computers and Technology
1 answer:
Nuetrik [128]3 years ago
3 0
This is everywhere i don’t understand i’m sorry
You might be interested in
what type of authentication does the dod require to accesss sensitive data on mobile devices and /or email
nikklg [1K]
Dod required a car to access data gahagsgssgsg
3 0
3 years ago
Read 2 more answers
Write a function `has_more_zs` to determine which of two strings contains # more instances of the letter "z". It should take as
nekit [7.7K]

Answer:

// Method's name: has_more_zs

// Parameters are text1 and text2 to hold the two phrases to be tested

public static String has_more_zs(String text1, String text2) {

 // Create and initialize z1 to zero

 // Use z1 to count the number of zs in text1

 int z1 = 0;

 // Create and initialize z2 to zero

 // Use z2 to count the number of zs in text2

 int z2 = 0;

 

 //Create a loop to cycle through the characters in text1

 //Increment z1 by one if the current character is a 'z'

 int i = 0;

 while (i < text1.length()) {

  if (text1.charAt(i) == 'z' || text1.charAt(i) == 'Z') {

   z1 += 1;

  }

  i++;

 }

 //Create a loop to cycle through the characters in text2

 //Increment z2 by one if the current character is a 'z'

 

 i = 0; //Re-initialize i to zero

 

 while (i < text2.length()) {

  if (text2.charAt(i) == 'z' || text2.charAt(i) == 'Z') {

   z2 += 1;

  }

  i++;

 }

 

 

 //Using the values of z1 and z2, return the necessary statements

 if (z1 > z2) {

  return "The phrase '" + text1 + "'" + " has more occurences of z than the phrase " + "'" + text2 + "'";

 }

 else if (z1 < z1) {

  return "The phrase '" + text2 + "'" + " has more occurences of z than the phrase " + "'" + text1 + "'";

 }

 else if (z1 == z2) {

  return "The strings have the same number of z";

 }

 else {

  return "Neither string contains the the letter z";

 }

}

Explanation:

Explanation to answer has been given in the code as comments. Please refer to the comments for the details of the code.

The source code file has been attached to this response and saved as "NumberOfZs.java"

Hope this helps!

Download java
5 0
3 years ago
Magbigay ng ibang produkto na ginagamitan ng kasanayan ng basic sketching shading at outlining ​
JulsSmile [24]

Answer:

Procreate

Explanation:

7 0
3 years ago
How can I download music and films at home without breaking the law?
mina [271]

Answer: use a legal music downloader

Explanation: :)

5 0
3 years ago
Read 2 more answers
Linda is the owner of Souvenirstop, a chain of souvenir shops. One of the shops is located at the City Centre Mall. Though the s
Klio2033 [76]

Answer:

attraction and attention

6 0
3 years ago
Other questions:
  • Prompt the user for a string that contains two strings separated by a comma. (1 pt)Examples of strings that can be accepted:Jill
    5·1 answer
  • I need a idea of a origami for my coding class and it needs to be easy to make
    15·2 answers
  • Need Help !!! Please
    8·1 answer
  • What is binary number
    11·1 answer
  • Research information technology affects on job market, career pathways, occupational outlooks in business and finance and synthe
    7·1 answer
  • (a) Convert to hexadecimal: 1457.1110. Round to two digits past the hexadecimal point.
    8·1 answer
  • Fatal error: Class 'Drush\Commands\DrushCommands' not found in /Users/amy/testsite/Sites/acquia dev desktop/fresh-install/module
    7·1 answer
  • How to get bing with any node unblocker
    10·2 answers
  • Accenture has put together a coalition of several ecosystem partners to implement the principles of blockchain and Multi-party S
    10·1 answer
  • Question 2 of 10
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!