Search code examples
pythonpython-3.xbubble-sort

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))

Solution

  • 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))