43 lines
909 B
Python
43 lines
909 B
Python
import copy
|
|
|
|
|
|
def send_to_goulag(main_list:list)->list:
|
|
if not main_list:
|
|
return main_list
|
|
itens_to_be_reinserted = []
|
|
|
|
main_list_copy = copy.deepcopy(main_list)
|
|
i = 0
|
|
while i < len(main_list) - 1:
|
|
if main_list[i] > main_list[i+1]:
|
|
itens_to_be_reinserted.append(main_list[i+1])
|
|
main_list.pop(i+1)
|
|
|
|
else:
|
|
i += 1
|
|
|
|
if not itens_to_be_reinserted and main_list == main_list_copy:
|
|
return main_list
|
|
|
|
print(main_list)
|
|
|
|
if len(itens_to_be_reinserted)>1:
|
|
itens_to_be_reinserted = send_to_goulag(itens_to_be_reinserted)
|
|
|
|
i = 0
|
|
|
|
while i < len(main_list):
|
|
if itens_to_be_reinserted[0] < main_list[i]:
|
|
main_list[i:i] = itens_to_be_reinserted
|
|
itens_to_be_reinserted.clear()
|
|
break
|
|
i += 1
|
|
|
|
main_list = send_to_goulag(main_list)
|
|
|
|
return main_list
|
|
|
|
|
|
|
|
|