Просто fun 😁
В 2011 году некий автор на 4Chan изобрел новый вид сортировки, который получил название Sleep Sort.
Вместе каких либо манипуляций с элементами в массиве, каждый элемент «засыпает» на такое же количество миллисекунд, чему равно это число. Если элемент 4, то он будет спать 4 миллисекунды.
Название сортировки обыгрывает два момента. Во-первых в реализации используется метод sleep. Во-вторых, лучше пойти поспать, пока сортировка работает, например массив [0, 36000000] отсортируется за 10 часов.
Реализация на питоне:
import asyncio
async def sleepsort(nums):
sorted_nums = []
async def add_num(num):
print(f"Received number {num}, sleeping for {num}s")
await asyncio.sleep(num)
print(f"Adding {num} to the list")
sorted_nums.append(num)
awaitables = [add_num(num) for num in nums]
await asyncio.gather(*awaitables)
return sorted_nums
async def main():
print(await sleepsort([3, 2, 1, 0, 5, 4]))
asyncio.run(main())
➡️Ссылка на статью
https://animeshchouhan.com/posts/sleepsort/
⁉️ Вопрос для вас, какая сложность алгоритма?