import numpy as np np.random.seed(1012) DATASIZE = 10000 MAX_VALUE = 1000000000 data = np.random.randint(0, MAX_VALUE, size=DATASIZE) def compareWithNext(data): for i in range(len(data)-1): if data[i] > data[i+1]: temp = data[i]; data[i] = data[i+1]; data[i+1] = temp; def mySort(data): for i in range(len(data)): compareWithNext(data) def main(): print(data[0:5]) mySort(data[0:5]) print(data[0:5]) main() The sort from the code above can be improved. If the data passed to be sorted is already sorted, it still performs all of the work, as if the array was not sorted. Make two improvements: • Change the first function (the one that does the comparisons), so that it returns a boolean that states whether the array is sorted. Make use of that boolean to stop calling the first function if the array is sorted. • Consider what happens when the first function is called. For randomly distributed data, some comparisons will lead to swaps, and others won’t. But, the largest number will certainly “float” to the end of the array. Future calls of the first function will not move that largest number, and we could therefore end the comparisons done in future calls without examining the last position in the array. • Modify the first function further. Add a parameter that specifies the index at which the comparisons & swaps should stop. Modify the second function so that one fewer element is examined each time the first function is called.

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

import numpy as np
np.random.seed(1012)
DATASIZE = 10000
MAX_VALUE = 1000000000
data = np.random.randint(0, MAX_VALUE, size=DATASIZE)

def compareWithNext(data):
    for i in range(len(data)-1):
        if data[i] > data[i+1]:
            temp = data[i];
            data[i] = data[i+1];
            data[i+1] = temp;
        

def mySort(data):
    for i in range(len(data)):
        compareWithNext(data)

def main():
    print(data[0:5])
    mySort(data[0:5])
    print(data[0:5])

main() 

The sort from the code above can be improved. If the data passed to be sorted is
already sorted, it still performs all of the work, as if the array was not
sorted.
Make two improvements:
• Change the first function (the one that does the comparisons), so that it returns a
boolean that states whether the array is sorted. Make use of that boolean to stop
calling the first function if the array is sorted.
• Consider what happens when the first function is called. For randomly distributed
data, some comparisons will lead to swaps, and others won’t. But, the largest
number will certainly “float” to the end of the array. Future calls of the first
function will not move that largest number, and we could therefore end the
comparisons done in future calls without examining the last position in the array.
• Modify the first function further. Add a parameter that specifies the index at
which the comparisons & swaps should stop. Modify the second function so
that one fewer element is examined each time the first function is called.
 
 
 
Expert Solution
steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Types of trees
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