我试图创建一个程序,为特定的整数数组选择最快的排序算法。我试图检查条件"几乎已经分类了,"并且想知道在行业中找到这个的常见做法是什么。
假设编码器可以使用排序数组。我能想到的两种可能的解决方案是:
同时循环浏览两个列表。比较索引处的值,找到正确放置值的百分比。我知道这很快(只是O(N)),但它可能非常不准确......如果一切都被一个空间移动怎么办?该算法将给出0,但插入排序将需要一次运行才能对此进行排序。
找出某个方向从哪个方向转移到正确的位置(w /环绕)。这似乎是一个更好的解决方案,但可能非常慢(O(N ^ 2),因为我们可能必须遍历每个未排序对象的排序列表,这可以通过比较while循环中的值来纠正A BIT )。
还有其他人吗?如果没有,我选哪个?
谢谢!