# 2.2分析算法练习题 python描述 # 2.2-1 # Θ(n^3) # 2.2-2 A = [99, 38, 65, 97, 76, 13, 27, 49] # 排序过程 # A = [13, 38, 65, 97, 76, 99, 27, 49] # A = [13, 27, 65, 97, 76, 99, 38, 49] # A = [13, 27, 38, 97, 76, 99, 65, 49] # A = [13, 27, 38, 49, 76, 99, 65, 97] # A = [13, 27, 38, 49, 65, 99, 76, 97] # A = [13, 27, 38, 49, 65, 76, 99, 97] # A = [13, 27, 38, 49, 65, 76, 97, 99] def selectsort(A): length = len(A) for i in range(0, length - 1): min = i for j in range(i + 1, length): if A[j] < A[min]: min = j temp = A[min] A[min] = A[i] A[i] = temp selectsort(A) print(A) # Θ(n^2) #2.2-3 # 假设每个条目都有概率p为元素所寻找的。 然后,如果前面的k-1个位置不是被查找的元素,那么我们将只检查k个元素, # 而第k个位置是所需的值。 考虑到这种分布的预期值,我们可以得到它 #2.2-4 # 对于一个好的最佳运行时间,修改算法首先随机产生输出,然后检查它是否满足算法的目标。 如果是这样,产生这个输出并停止。 # 否则,照常运行算法。 这不太可能会成功,但在最好的情况下,运行时间只会与检查解决方案一样长。 # 例如,我们可以修改选择排序,首先随机排列A的元素,然后检查它们是否按排序顺序排列。 如果是,输出A.否则按照惯例运行选择排序。 # 在最好的情况下,这个修改的算法将具有运行时间Θ(n)。
算法导论:2.2分析算法练习题 python描述
最新推荐文章于 2022-11-24 10:50:30 发布