Существует разновидность, которая называется богобогосорт. Сначала он проверяет первые 2 элемента и сортирует их. Затем он проверяет первые 3, bogosorts их, и так далее.
Если список в любой момент выходит из строя, он перезапускается путем повторной сортировки первых 2. Обычный богосорт имеет среднюю сложность O(N!), этот алгоритм имеет среднюю сложностьO(N!1!2!3!...N!)
Редактировать : чтобы дать вам представление о том, насколько велико это число, для 20элементов этот алгоритм занимает в среднем 3.930093*10^158 годы , значительно превышая предполагаемую тепловую смерть вселенной (если это произойдет) 10^100 лет ,
тогда как сортировка слиянием занимает около .0000004 секунд , пузырьковая сортировка .0000016 секунд , а bogosort - 308 годы , 139 дни , 19 часы , 35 минуты , 22.306 секунды , при условии, что год равен 365,242 дням, а компьютер выполняет 250 000 000 32-битных целочисленных операций в секунду.
Edit2 : этот алгоритм не такой медленный, как «алгоритм» чудо-сортировки, которая, вероятно, подобно этому виду, засунет компьютер в черную дыру, прежде чем он успешно отсортирует 20 элементов, но если это произойдет, я бы оценил среднюю сложность от 2^(32(the number of bits in a 32 bit integer)*N)(the number of elements)*(a number <=10^40) лет ,
поскольку гравитация ускоряет движение альфа-фишек, и существует 2 ^ N состояний, что составляет 2^640*10^40или около 5.783*10^216.762162762 года , хотя, если бы список начинался отсортированным, его сложность была бы только O(N)быстрее, чем сортировка слиянием, которая составляет только N log N даже в худшем случае.
Edit3 : этот алгоритм на самом деле медленнее, чем чудо-сортировка, так как размер становится очень большим, скажем 1000, так как мой алгоритм будет иметь время выполнения 2.83*10^1175546 лет , а алгоритм чудо-сортировки будет иметь 1.156*10^9657 годы работы .