lundi 19 novembre 2018

How do I reconsider the new pivot so that it reruns the if statement?

I am trying to create an algorithm for quicksort. When I run this code, it is a never ending loop of the pivot getting smaller and smaller. However, the pivot number would be smaller than an item in the array. I need it to re-look at my top if statement to check whether the pivot number is smaller or not. new_numbers = [23, 76, -18, -83, 1, 34, 19, 24, 1312, 56, -123, 52, -5, -22, 44, 16] pivot = len(new_numbers)-1 while 1 == 1: pivot = pivot if any(new_numbers[pivot] < item for item in new_numbers[:pivot]): increment = 0 for i in range(pivot): if new_numbers[i] < new_numbers[pivot]: new_numbers[increment], new_numbers[i] = new_numbers[i], new_numbers[increment] increment=increment + 1 new_numbers[increment],new_numbers[pivot] = new_numbers[pivot],new_numbers[increment] elif any(new_numbers[pivot] >= item for item in new_numbers[:pivot]): pivot = increment - 1 if any(new_numbers[pivot] >= item for item in new_numbers[:pivot]): increment -= 1 pivot = increment - 1 print(new_numbers)

Aucun commentaire:

Enregistrer un commentaire