Computer Organization and Design MIPS Edition, Fifth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design)
Question
Book Icon
Chapter 6, Problem 6.5.2E
Program Plan Intro

Parallelism:

The state of being parallel and having correspondence among them is referred as parallelism. Two or more tasks can be performed simultaneously, without affecting the performance of the either one.

Given Information:

It is given that for the following recursive merge sort algorithm, the basic idea is to divide an unsorted list x of m elements into two sub lists of about half the size of the original list.

The merge step is carried out by the following code:

//Merge soft algorithm where m is the array passed as parameter

Mergesort(m)

//define variable left, right and result

var list left, right, result

//check if length of the array is less than "1"

if length(m) ≤ 1

//if length of array is less than "1" then return

return m

else

// set length of array as middle variable

var middle = length(m)/2

for each x in m after middle

//add the integer value to the left

add x to left

for each x in m after middle

//add the itneger value to the right

add x to right

//Sort the left array

left = Mergesort(left)

//Sort the right array

right = Mergesort(right)

//merge the sorted left and right array

result = Merge(left, right)

return result

The merge step is mentioned below:

//merge the left and right sorted array

Merge(left, right)

//declare variable result

var list result

//While loop continues till elements exist in array

while length(left) >0 and length(right) > 0

/* check if first value of left array is less than first value of right array */

if first(left) ≤ first(right)

//add first of left array to the result //array

append first(left) to result

left = rest(left)

else

//add first of right array to the result //array

append first(right) to result

right = rest(right)

//check if length of left array is greater than 0

if length(left) >0

//add rest of left array to the result array

append rest(left) to result

if length(right) >0

//add rest of right array to the result array

append rest(right) to result

//return result array

return result

Blurred answer
Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY