答案 0 :(得分:2)
预期的比较次数为sum_ {i = 1 ... n}(i * p_i)。
按降序重新排序元素会降低预期。这很直观,因为通过首先查看最可能的选择,平均会减少在找到特定选择之前所看到的元素数量。
例如,假设有三个项目k1,k2,k3,匹配概率分别为10%,30%和60%。
然后按顺序k1,k2,k3,预期的比较次数为1 * 0.1 + 2 * 0.3 + 3 * 0.6 = 2.5
最可能的第一个:k3,k2,k1,预期的比较次数是1 * 0.6 + 2 * 0.3 + 3 * 0.1 = 1.5
答案 1 :(得分:-1)
不,因为访问数组中的元素需要花费O(1)时间,并且它不依赖于数组中此元素的位置。因此arr[0]
和arr[10000]
应该花费相同的时间。
如果您将拥有链接列表或二叉树之类的内容,那么将更高概率访问的元素放在更接近开头的位置是有意义的。