BubbleSort with recursion in Python3 - Returning “None”


BubbleSort with recursion in Python3 - Returning “None”



I created a small function to do BubbleSort (just learning how to code) in Python 3 and I can't find the issue.



Here is the code. It's returning "None" for some reason. Could someone please take a look? Thank you!


arr = [1,5,2,7,3]

def bubbleSort(array):
count = 0
#print("array is currently",array)
for idx in range(len(array)-1):
if array[idx] > array[idx + 1]:
array[idx],array[idx + 1] = array[idx + 1],array[idx]
count += 1
#print("swaped and count is currently",count)
#print("array is currently",array)
if count == 0:
#print("Count is zero")
#print("array is currently",array)
return array
else:
#print("Count is not zero")
bubbleSort(array)

print(bubbleSort(arr))





in your else you need to return bubbleSort(array) ... I can't speak to the correctness of the rest of the implementation
– Matthew Story
Jul 3 at 3:57



else


return bubbleSort(array)





Possible duplicate of Recursive function returning none in Python
– user3483203
Jul 3 at 3:58





Recursive functions are no different than normal Python functions in how they return values, all the recursive calls to bubbleSort are getting thrown away because you aren't accessing the result.
– user3483203
Jul 3 at 3:58



bubbleSort




1 Answer
1



You need to return the sorted array


arr = [1,5,2,7,3]

def bubbleSort(array):
count = 0
#print("array is currently",array)
for idx in range(len(array)-1):
if array[idx] > array[idx + 1]:
array[idx],array[idx + 1] = array[idx + 1],array[idx]
count += 1
#print("swaped and count is currently",count)
#print("array is currently",array)
if count == 0:
#print("Count is zero")
#print("array is currently",array)
return array
else:
#print("Count is not zero")
return bubbleSort(array)

print(bubbleSort(arr))





Thank you so much!!!
– Amanda Demetrio
Jul 3 at 4:41






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

api-platform.com Unable to generate an IRI for the item of type

How to set up datasource with Spring for HikariCP?

Display dokan vendor name on Woocommerce single product pages