下面给出了应用于阵列A(基于零的索引)的插入排序算法的伪代码。 DEF比较(A,B): 如果A> B返回1 否则返回-1插入排序中的比较和交换之间的区别
for i : 1 to length(A)
j = i - 1
while j > 0
if compare(A[j-1], A[j]) > 0
swap(A[j], A[j-1])
j = j - 1
else break
鉴于整数数组A中,发现比较函数调用和若干交换功能由呼叫的数目之间的差异以上算法应用于A.
让我们以A = {1,2,4,3}为例。如果我们在A作为上述应用插入排序我们所说的比较和交换功能sequeunce按照以下顺序
compare (A[0], A[1])
compare (A[1], A[2])
compare (A[2], A[3])
swap (A[2], A[3])
compare (A[1], A[2])
这里比较函数被调用4次,交换函数被调用1次。答案是4-1 = 3.
我需要找到最佳的差异,而无需运行实际插入排序算法,其中需要O(n^2)。
“找到最佳差异”? –