Python Programming: An Introduction to Computer Science, 3rd Ed.
Python Programming: An Introduction to Computer Science, 3rd Ed.
3rd Edition
ISBN: 9781590282755
Author: John Zelle
Publisher: Franklin, Beedle & Associates
bartleby

Concept explainers

Question
Book Icon
Chapter 13, Problem 4PE
Program Plan Intro

Maximum of list

Program plan:

  • Import the package.
  • Define the “Max()” function,
    • Make simultaneous assignment to initialize the variables.
    • Assign the values return from “len()”.
    • Execute while loop when both “lst_1” and “lst_2” have more items,
      • Check whether top of “lst_1” is larger,
        • If it is “True”, copy that top value into current location in “lst_3”.
        • Increment “s1” by “1”.
      • Otherwise,
        • Copy the top of “lst_2” into the current location in “lst_3”.
        • Increment “s2” by “1”.
      • Increment “s3” by “1” when element is added to “lst_3”.
    • Execute the “while” loop to copy remaining elements from “lst_1”,
      • Copy the element.
      • Increment “s1” by “1”.
      • Increment “s3” by “1”.
    • Execute the "while" loop to copy remaining elements from “lst_2”,
      • Copy the element.
      • Increment “s2” by “1”.
      • Increment “s3” by “1”.
  • Define the function “merge_Sort()”,
    • Assign the initial values for the variable.
    • Check whether the number element is greater than 1,
      • Split the list into two sub lists.
      • Make simultaneous assignment to assign two sub lists using slicing.
      • Make recursive calls to sort each sub list.
      • Merge the sorted sub list into original list.
  • Create empty list.
  • Create for loop to iterate “100” times.
    • Append the random value to the end of the list.
  • Call the “merge_Sort()” function.
  • Print the list.

Expert Solution & Answer
Check Mark
Program Description Answer

This Python program is to demonstrate a recursive function “Max()” to find the largest number in a list where the largest number is the larger of the first item and the maximum of all the other items.

Explanation of Solution

Program:

File name: “conference.py

#Import the package

from random import randrange

#Define the function

def Max(lst_1, lst_2, lst_3):

    #Make simultaneous assignment

    s1, s2, s3 = 0, 0 , 0

    #Assign the values return from len()

    n1, n2 = len(lst_1), len(lst_2)

    '''Execute while loop when both lst_1 and lst_2 have more items'''

    while s1 < n1 and s2 < n2:

        #Check whether top of lst_1 is larger

        if lst_1[s1] > lst_2[s2]:    

            '''Copy that top value into current location in lst_3'''

            lst_3[s3] = lst_1[s1]    

            #Increment by "1"

            s1 = s1 + 1

        #Otherwise

        else:                    

            '''Copy the top of lst_2 into the current location in lst_3'''

            lst_3[s3] = lst_2[s2]   

            #Increment by "1"

            s2 = s2 + 1

        #Increment by "1" when element added into lst_3

        s3 = s3 + 1               

    '''Execute the "while" loop to copy remaining elements from lst_1'''

    while s1 < n1:

        #Copy the element

        lst_3[s3] = lst_1[s1]

        #Increment by "1"

        s1 = s1 + 1

        #Increment by "1"

        s3 = s3 + 1

    '''Execute the "while" loop to copy remaining elements from lst1_2'''

    while s2 < n2:

        #Copy the element

        lst_3[s3] = lst_2[s2]

        #Increment by "1"

        s2 = s2 + 1

        #Increment by "1"

        s3 = s3 + 1

#Define the function

def merge_Sort(num):

    #Assign the value

    n = len(num)

    '''Check whether the number element is greater than 1'''

    if n > 1:

        #Split the list into two sub lists

        v = n // 2

        '''Make simultaneous assignment to assign two sub lists using slicing'''

        nums_1, nums_2 = num[:v], num[v:]

        #Make recursive calls to sort each sub list

        merge_Sort(nums_1)

        merge_Sort(nums_2)

        #Merge the sorted sub list into original list

        Max(nums_1, nums_2, num)

#Create empty list

lst = []

#Create for loop

for n in range(100):

    #Append the random value to the end of the list

    lst.append(randrange(1, 1000))

#Call the function

merge_Sort(lst)

#Print the list

print(lst)

Sample Output

Output:

[996, 992, 975, 974, 956, 952, 947, 937, 921, 915, 902, 899, 891, 889, 886, 863, 863, 862, 856, 841, 837, 819, 808, 791, 760, 755, 754, 739, 736, 732, 685, 663, 638, 628, 623, 622, 612, 594, 569, 562, 552, 532, 531, 528, 527, 523, 492, 475, 468, 461, 452, 451, 444, 438, 431, 413, 405, 401, 375, 370, 358, 354, 350, 350, 347, 339, 325, 290, 286, 246, 227, 220, 215, 188, 185, 182, 168, 161, 149, 142, 141, 141, 139, 135, 115, 114, 112, 101, 96, 94, 94, 85, 84, 84, 80, 78, 70, 18, 13, 11]

>>>

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Write and test a recursive function max to find the largest number in a list.The max is the larger of the first item and the max of all the other items.
Construct recursive versions of the library functions that: a. calculate the "sum" of a list of numbers. b. "take" a given number of elements from the beginning of a list. c. select the "last" element of a non-empty list .
Write a recursive function named  Multiply2 that multiples by 2 and prints each element in a given list. For example:  mylist=[1,2,3,4]    Multiply2(mylist)    prints: 2 4 6 8
Knowledge Booster
Background pattern image
Computer Science
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
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning