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 pop
ed 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"