-
Notifications
You must be signed in to change notification settings - Fork 3
Closed
Description
Serial Recursion
from executorlib import SingleNodeExecutor
def sum_recursive(num):
if num == 1: # Base case
return num
return num + sum_recursive(num - 1)
with SingleNodeExecutor() as exe:
print(exe.submit(sum_recursive, 3).result())Quicksort
from executorlib import SingleNodeExecutor
def quick_sort(sequence):
length = len(sequence)
if length <= 1:
return {"result": sequence}
else:
pivot = sequence.pop()
greater_items = []
lesser_items = []
for item in sequence:
if item > pivot:
greater_items.append(item)
else:
lesser_items.append(item)
return {"left": lesser_items, "right": greater_items, "result": [pivot]}
def recusive_submit(function, sequence, executor):
result_dict = exe.submit(function, sequence).result()
if "left" in result_dict.keys():
return recusive_submit(function=function, sequence=result_dict["left"], executor=executor) + result_dict["result"] + recusive_submit(function=function, sequence=result_dict["right"], executor=executor)
else:
return result_dict["result"]
with SingleNodeExecutor() as exe:
print(recusive_submit(function=quick_sort, sequence=[0,9,3,8,2,7,5], executor=exe))Metadata
Metadata
Assignees
Labels
No labels