Skip to content Skip to sidebar Skip to footer

Selection Sort Algorithm Python

Working on implementing this algorithm using Python. I thought my logic was okay but apparently not as Python is complaining. The while loop is causing issues. If I remove that it

Solution 1:

It looks like you're not re-initializing the smallest_number variable, so after the first execution of your while loop - you look for a value smaller than the previous value which you just poped from the list.

When you don't find a value smaller than the previously smallest value which is no longer in the list, you try to pop the same smallest_number as in the previous iteration of the while loop. However, that value is no longer in the items_to_sort list which is why you get the ValueError

Try moving the line smallest_number = items_to_sort[0] to be the first line executed in every iteration of your while loop.

Solution 2:

After every while loop, you should assign items_to_sort[0] to smallest_number

current_number = 0
sorted_items = []
item_len = len(items_to_sort)
while item_len > 0:
    smallest_number = items_to_sort[0]
    for item in items_to_sort[:]:
        if item < smallest_number:
            smallest_number = item
    index=items_to_sort.index(smallest_number)
    items_to_sort.pop(index)
    print(items_to_sort)
    sorted_items.append(smallest_number)
    item_len -= 1return sorted_items

Post a Comment for "Selection Sort Algorithm Python"