Bogo排序在某些场景下能优于冒泡排序吗?

问题描述 投票:0回答:1

在我最近对冒泡排序和 Bogo 排序算法的比较中,特别分析了它们在对长度为 9 的数组进行排序时的性能,冒泡排序始终表现出更快的排序时间(这并不奇怪!)。但是,我很好奇是否存在任何可能的情况,Bogo 排序在排序速度方面可能会意外优于冒泡排序。

algorithm sorting bubble-sort
1个回答
0
投票

当然是。

对于 9 元素数组的 Bogo 排序,第一次尝试生成正确排序的可能性为 362880 分之一。

冒泡排序的最坏情况是原始数组被反向排序。在这种情况下,9 元素数组的冒泡排序需要 36 次交换和至少 36 次比较。

Bogo Sort 中的同一个数组,如果你非常幸运的话,只需要 1 次比较就能意识到它尚未排序,最多 9 次交换来生成随机洗牌,另外 9 次比较来验证它是否已正确排序。

因此,反向排序的 9 元素数组的冒泡排序总是需要 36 次交换和至少 36 次比较,而 Bogo 排序有 0.0002755731922% 的机会可以在 10 次比较和最多 9 次交换中完成。

另一方面,Bogo Sort 永远不会生成正确排序的可能性当然也很小,因此将运行无限长的时间。

© www.soinside.com 2019 - 2024. All rights reserved.