from random import randrange array = [9,0,1,5,4,2] num_elements = 100 def generateArray(): for i in range(num_elements): array.append(randrange(1,100)) def flip(index): mid = index//2 for i in range(0,mid+1): temp = array[i] array[i] = array[index-i] array[index-i] = temp def solve(): for i in range(len(array)-1, 0, -1): max_index = 0 for j in range(1,i+1): # i+1 is not necessary because it will just flip back anyways if (array[j] > array[max_index]): max_index = j flip(max_index) #print("max_index: " + array) flip(i) #print("flip to index: " + array) def main(): #generateArray() print(array) solve() print(array) if __name__ == '__main__': main()