
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
1. Sorting
• Begin by filling an array with random numbers:
import numpy as np
np.random.seed(1012)
DATASIZE = 1000
MAX_VALUE = 10000000
data = np.random.randint(0, MAX_VALUE, size=DATASIZE)
• Write a function that is passed a numpy array. The function should walk
through the array element-by-element, comparing the current element to
the next element. Swap if the next is smaller than the current – sorting
these two elements.
• Write a second function that calls the above function n times, where n is
the number of elements (size) of the array. Pass the same numpy array
each time.
• Begin by filling an array with random numbers:
import numpy as np
np.random.seed(1012)
DATASIZE = 1000
MAX_VALUE = 10000000
data = np.random.randint(0, MAX_VALUE, size=DATASIZE)
• Write a function that is passed a numpy array. The function should walk
through the array element-by-element, comparing the current element to
the next element. Swap if the next is smaller than the current – sorting
these two elements.
• Write a second function that calls the above function n times, where n is
the number of elements (size) of the array. Pass the same numpy array
each time.
2. Bubble Sort
• The sort from part 1 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.
• The sort from part 1 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.
3. Selection Sort
• The idea in a selection sort is that you locate the largest item out of a set of
unsorted items, and move it into position at the end of the unsorted items. A
sorted region grows one item at a time, while an unsorted region shrinks.
• As done in Part 1, fill an array with random numbers.
• Write a function that locates the largest element in the portion of the array
beginning at the start of the array, up to a given index, and swaps the largest
item with the item at the given index.
• E.g. If searching a[0] to a[7] locates the largest item at a[4], a[4] and a[7] would be
swapped.
• Write a second function that calls the first function repeatedly, until the entire
array is sorted. (Each time the first function is called, it will search one fewer
element)
• The idea in a selection sort is that you locate the largest item out of a set of
unsorted items, and move it into position at the end of the unsorted items. A
sorted region grows one item at a time, while an unsorted region shrinks.
• As done in Part 1, fill an array with random numbers.
• Write a function that locates the largest element in the portion of the array
beginning at the start of the array, up to a given index, and swaps the largest
item with the item at the given index.
• E.g. If searching a[0] to a[7] locates the largest item at a[4], a[4] and a[7] would be
swapped.
• Write a second function that calls the first function repeatedly, until the entire
array is sorted. (Each time the first function is called, it will search one fewer
element)
4. Insertion Sort
• The idea with an insertion sort is that a sorted region grows one item at a
time, by inserting an item into its correct position within the sorted region.
• As done in Part 1, fill an array with random numbers.
• Write a function that inserts an item into a sorted region of an array. Pass
the function the index of the item to be inserted (i.e. the index of the first
item in the unsorted region). Insert that item by shifting items over one
position, until you have found the correct location to insert the item.
• E.g. if given a = [2 5 8 9 6 3 7] and the index 4, a[4] should be inserted into the
sorted portion, giving [2 5 6 8 9 3 7]
• Write a second function that calls the first function repeatedly, until the
entire array is sorted. (Each time the first function is called, it will insert an
item into a larger sorted region.)
• The idea with an insertion sort is that a sorted region grows one item at a
time, by inserting an item into its correct position within the sorted region.
• As done in Part 1, fill an array with random numbers.
• Write a function that inserts an item into a sorted region of an array. Pass
the function the index of the item to be inserted (i.e. the index of the first
item in the unsorted region). Insert that item by shifting items over one
position, until you have found the correct location to insert the item.
• E.g. if given a = [2 5 8 9 6 3 7] and the index 4, a[4] should be inserted into the
sorted portion, giving [2 5 6 8 9 3 7]
• Write a second function that calls the first function repeatedly, until the
entire array is sorted. (Each time the first function is called, it will insert an
item into a larger sorted region.)
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by stepSolved in 3 steps with 1 images

Knowledge Booster
Similar questions
- Matrix Addition• Write an addition function that accepts two 2D numpy arrays, andreturns the sum of the two (if they are the same size). This functionshould test that the arrays are the same size before performing theaddition. If the arrays are not the same size, the function shouldreturn -1. solve in pythonarrow_forwardWrite a function sumArray with: • Inputs o the first input is an int array called inputArr o the second input is an int that contains the number of elements in inputArr called sizeArr. • Returns: sum as int Description: Calculate the sum of all elements in inputArr • Constraints: Use only pointers to access array elementsarrow_forwardPrompt: In python langauge, write a function that adds a random noise to all elements of a NumPy array Code: import numpy as np import math import matplotlib.pyplot as plt import pandas as pd def addNoise(inputArray): modifiedArray = np.zeros(len(inputArray)) #YOUR CODE HERE: return(modifiedArray) def test(): inputs = np.arange(-5, 5,0.2) outputs = addNoise(inputs) plt.figure(1) plt.plot(inputs) plt.title('Input') plt.xlabel('Index') plt.ylabel('Value') plt.show() plt.figure(2) plt.plot(outputs, 'black') plt.title('Output') plt.xlabel('Index') plt.ylabel('Value') plt.show() test()arrow_forward
- Programming language: Processing from Java Question attached as photo Topic: Use of Patial- Full Arraysarrow_forwardWhat is the big O notation for this function?arrow_forwardWrite the function lastOf which searches the array a for the last occurance of any value contained in the array b. Returns the index if found. If not found, return -1. arrays.cpp 1 #include 2 int last0f(const int a[], int alen, const int b[], int bLen) { 3 4 5 6 7 8 }arrow_forward
- Prompt: In Python language, write a function that applies the logistic sigmoid function to all elements of a NumPy array. Code: import numpy as np import math import matplotlib.pyplot as plt import pandas as pd def sigmoid(inputArray): modifiedArray = np.zeros(len(inputArray)) #YOUR CODE HERE: return(modifiedArray) def test(): inputs = np.arange(-100, 100, 0.5) outputs = sigmoid(inputs) plt.figure(1) plt.plot(inputs) plt.title('Input') plt.xlabel('Index') plt.ylabel('Value') plt.show() plt.figure(2) plt.plot(outputs,'Black') plt.title('Output') plt.xlabel('Index') plt.ylabel('Value') plt.show() test()arrow_forwardWrite the function lastOf which searches the array a for the last occurance of any value contained in the array b. Returns the index if found. If not found, return -1. arrays.cpp 1 #include 2 3 int lastof(const int a[), int alen, const int b[], int blen) 4 { int res = 0; for (int i = 0; i =0 ; j--) if (b[j] == a[i]) { if(res[1, 9, 4, 5, 1, 5, 1, 12, 8, 11, 2, 11, 7, 8] b1->[7, 5, 9] last0f(al, 14, b1, 3): -1 Expected: 12 al->[1, 9, 4, 5, 1, 5, 1, 12, 8, 11, 2, 11, 7, 8] b2->[7, 7] lastof (al, 14, b2, 2): -1 Expected: 12 a2->[3, 2, 1, 14, 10, 6, 13, 1ө, 11, 13, 14] b2->[7, 7] lastof (a2, 11, b2, 2): -1 Expected: -1 а2->[3, 2, 1, 14, 10, 6, 13, 1ө, 11, 13, 14] b1->[7, 5, 9] last0f (a2, 11, b1, 3): -1 Expected: -1 а2->[3, 2, 1, 14, 10, 6, 13, 10, 11, 13, 14] b3->[11, 2, 1, 15] lastof (a2, 11, b3, 4): -1 Expected: 8 Score 2/5arrow_forward4. Arrays. In order to test the functions in this question, you will need an array. We can create a three- dimensional test array as follows: testArray xijk - máx rij,k i=1 i=1 i=1 (b) Now suppose we want a function testFn2 which returns the d2 x d3 matrix {zj.k} where di Zj,k = Σ i=1arrow_forward
arrow_back_ios
arrow_forward_ios
Recommended textbooks for you
- Computer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Concepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningPrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY

Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON

Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science

Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning

Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning

Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education

Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY