Concept explainers
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”.
- Check whether top of “lst_1” is larger,
- 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.
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)
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?
Chapter 13 Solutions
Python Programming: An Introduction to Computer Science, 3rd Ed.
- Create a recursive function that simulates the range function. For example: Enter the range (begin, end, increment) separated by spaces: 3 15 3 [3,6,9,12]arrow_forwardWrite a recursive function called that takes a string of single names separated by spaces and prints out all possible combinations (permutations), each combination on a new line. When the input is: Alice Bob Charlie then the output is: Alice Bob Charlie Alice Charlie Bob Bob Alice Charlie Bob Charlie Alice Charlie Alice Bob Charlie Bob Alice Here is my original code that needs to be fixed: def all_permutations(permList, nameList): # TODO: Implement method to create and output all permutations of the list of names. if nameList == len(permList) - 1: return nameList else: for x in range(permList, len(nameList)): permList[nameList], permList[x] = permList[x], permList[name_List] return all_permutations(permList, nameList + 1) permList[nameList], permList[x] = permList[x], permList[name_List] if __name__ == "main": nameList = input().split(' ') permList = [] all_permutations(permList, nameList)arrow_forwardWrite a recursive function that displays a string reversely on the console using the following header: def reverseDisplay(value):For example, reverseDisplay("abcd") displays dcba. Write a test programthat prompts the user to enter a string and displays its reversal.arrow_forward
- CodeW X b For func x C Solved X b Answer X https://codeworkou... CodeWorkout X270: Recursion Programming Exercise: Count Characters For function countChr() write the missing part of the recursive call. This function should return the number of times that the letter "A" appears in string "str". Recall that str.substring(a) will return the substring of str from position a to the end of str, while str.substring (a, b) will return the substring of str starting at position a and continuing to (but not including) the character at position b. Examples: countChr ("ctcoWCAt") -> 1 Your AnsSwer: 1 public int countChr(String str) { 2. if (str.length() return 0; } (0 4. { int count = 0; www. 5. 9. if (str.substring(0, 1).equals("A")) { count = 1 7. { 9. return count + > 1:10 AM 50°F Clear 12/4/2021 呼arrow_forwardExercise 1: The number of combinations CR represents the number of subsets of cardi- nal p of a set of cardinal n. It is defined by C = 1 if p = 0 or if p = n, and by C = C+ C in the general case. An interesting property to nxC calculate the combinations is: C : Write the recursive function to solve this problem.arrow_forwardRecursive Sum! Write a recursive function rc_sum(n:int) -> int that returns the sum of the first n positive integers. The function should look very similar to the factorial function you have seen before. Your Answer: 1 # Put your answer here 2 Submitarrow_forward
- Write a recursive function that displays a string reversely on the console using the following header: void reverseDisplay(const string& s) For example, reverseDisplay("abcd") displays dcba. Write a test program that prompts the user to enter a string and displays its reversal.arrow_forwardWrite a recursive function that returns the nth Fibonacci number from the Fibonacciseries.int fib(int n);arrow_forwardWrite a recursive function to return the number of uppercase letters in a list of characters. You need to define the following two functions. The second one is a recursive helper function.def count(chars):def countHelper(chars, high):Write a test program that prompts the user to enter a list of characters in one line and displays the number of uppercase letters in the list.arrow_forward
- Write a recursive function that returns the smallest integer in an array. Write a test program that prompts the user to enter a list of five integers and displays the smallest integer.arrow_forwardRecursive Palindrome! Recall that a palindrome is a string that reads the same forward and backward. Write a recursive function is_palindrome (s:str) -> bool to check whether a string s is a palindrome. Here's a hint: think about how you can use is_palindrome(t), where t is a substring of s, to help you decide whether s is a palindrome. Your Answer: 1 # Put your answer here 2 Submitarrow_forwardCodeW For fun X C Solved https://codeworkou... 臺亂 CodeWorkout X272: Recursion Programming Exercise: Is Reverse For function isReverse, write the two missing base case conditions. Given two strings, this function returns true if the two strings are identical, but are in reverse order. Otherwise it returns false. For example, if the inputs are "tac" and "cat", then the function should return true. Examples: isReverse("tac", "cat") -> true Your Answer: 1 public boolean isReverse(String s1, String s2) { 2. if > 3. 4. else if > return true; return false; 5. 6. else { String s1first = String s2last return s1first.equals (s2last) && 51. substring(0, 1); s2, substring(s2.length() 1); 7. 8. 6. isReverse(s1.substring(1), s2.substring(0, s2.length() 1)); { 12} 1:11AM 50°F Clear 12/4/2021arrow_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning