Question 1: The following algorithm takes an unsorted array of integer numbers as input and sorts it in descending order, by repeatedly doing the following: first, it searches in the whole array for the greatest element. it then puts this element to the beginning of the array. • then, it searches the whole array excluding the first element for the greatest value and puts it to the second position. Implement the algorithm according to two different strategies: A By using the method shiftRight(int] A, int i, int ): if the maximum element is found in position j and needs to be put into position i, then (1) shift A to the right, starting from position i, while remembering the element in position į that will be overridden; (i) copy the remembered element to position i B. By using the method swap(int] A, int i, int j): if the maximum element is found in position i and needs to be put into position j, then use swap to exchange the element in position i with the element in position j.

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

the qusetion on the picture 

Question 1:
The following algorithm takes an unsorted array of integer numbers as input and sorts it in
descending order, by repeatedly doing the following:
first, it searches in the whole array for the greatest element.
it then puts this element to the beginning of the array.
then, it searches the whole array excluding the first element for the greatest value and puts
it to the second position.
Implement the algorithm according to two diffrent strategies:
A. By using the method shiftRight(int[] A, int i, int j): if the maximum element is
found in position j and needs to be put into position i, then (i) shift A to the right,
starting from position i, while remembering the element in position j that will be
overridden; (i) copy the remembered element to position i.
B. By using the method swap(int[] A, int i, int j): if the maximum element is found in
position i and needs to be put into position j, then use swap to exchange the element
in position i with the element in position j.
Question 2:
Find out which of the two algorithms is faster. Is there an array size for which the running times
crosse over? (A size N would be such a cross-over point if for inputs of size less than N, the running
times of one algorithm are better, while for inputs of size greater than N, the running times of the
other algorithm are better.)
To perform your measurements, write a test class that
1. creates random arrays of size n = 10, 100, 1000, etc., and
2. for each array created, sorts it using the two implementations of the algorithm and
measures the running times.
to measure the running time use the Java method System.nanoTime() in the
following way:
long startTime = System.nanoTime();
. the code being measured .
long estimatedTime = System.nanoTime()-startTime;
Transcribed Image Text:Question 1: The following algorithm takes an unsorted array of integer numbers as input and sorts it in descending order, by repeatedly doing the following: first, it searches in the whole array for the greatest element. it then puts this element to the beginning of the array. then, it searches the whole array excluding the first element for the greatest value and puts it to the second position. Implement the algorithm according to two diffrent strategies: A. By using the method shiftRight(int[] A, int i, int j): if the maximum element is found in position j and needs to be put into position i, then (i) shift A to the right, starting from position i, while remembering the element in position j that will be overridden; (i) copy the remembered element to position i. B. By using the method swap(int[] A, int i, int j): if the maximum element is found in position i and needs to be put into position j, then use swap to exchange the element in position i with the element in position j. Question 2: Find out which of the two algorithms is faster. Is there an array size for which the running times crosse over? (A size N would be such a cross-over point if for inputs of size less than N, the running times of one algorithm are better, while for inputs of size greater than N, the running times of the other algorithm are better.) To perform your measurements, write a test class that 1. creates random arrays of size n = 10, 100, 1000, etc., and 2. for each array created, sorts it using the two implementations of the algorithm and measures the running times. to measure the running time use the Java method System.nanoTime() in the following way: long startTime = System.nanoTime(); . the code being measured . long estimatedTime = System.nanoTime()-startTime;
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
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