listsum() takes a list of integers and the list’s length. listsum() gets the sum by adding the sum of the halves. Each half is recursively divided into two until it reaches the base case (a list containing a single element or an empty list).  Trace and illustrate what happens (draw the recursion of this code step-by-step using the format of the example attached.)

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
icon
Concept explainers
Question

listsum() takes a list of integers and the list’s length. listsum() gets the sum by adding the sum of the halves. Each half is recursively divided into two until it reaches the base case (a list containing a single element or an empty list). 

Trace and illustrate what happens (draw the recursion of this code step-by-step using the format of the example attached.) 

def listsum(numlist, size):
# - base case
# if the list is empty
if size 0:
return 0
# if the list contains a single element
elif size == 1:
return numlist[0]
10
# get the halfway point
11
# so we'll know where to divide the list in half
12
mid =
size//2
13
14
# --recursive step--
15
# add the sum of the left side with the sum of the right side
16
#tip: you need to pass the left side to one function call
17
# and the right side to the other
18
return listsum(numlist[0:mid], Len(numlist[0:mid])) + listsum(numlist[mid:], Len(numlist[mid:]
19
20
21
numbers
=
[3,5,4,1,7,2,9,8,0,6]
22 print(listsum(numbers, Len(numbers)))
1~3
2
3
4
5
6
7
8
9
FROM
Transcribed Image Text:def listsum(numlist, size): # - base case # if the list is empty if size 0: return 0 # if the list contains a single element elif size == 1: return numlist[0] 10 # get the halfway point 11 # so we'll know where to divide the list in half 12 mid = size//2 13 14 # --recursive step-- 15 # add the sum of the left side with the sum of the right side 16 #tip: you need to pass the left side to one function call 17 # and the right side to the other 18 return listsum(numlist[0:mid], Len(numlist[0:mid])) + listsum(numlist[mid:], Len(numlist[mid:] 19 20 21 numbers = [3,5,4,1,7,2,9,8,0,6] 22 print(listsum(numbers, Len(numbers))) 1~3 2 3 4 5 6 7 8 9 FROM
sum(1,3,5,7,9)
sum (3,5,7,9)
sum (5,7,9)
sum (7,9)
1+
3+
-C
sum(9)
5+
10
7+
9
Transcribed Image Text:sum(1,3,5,7,9) sum (3,5,7,9) sum (5,7,9) sum (7,9) 1+ 3+ -C sum(9) 5+ 10 7+ 9
Expert Solution
steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Depth First Search
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