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))
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.
in your
else
you need toreturn bubbleSort(array)
... I can't speak to the correctness of the rest of the implementation– Matthew Story
Jul 3 at 3:57