假设数组长度为n,则数组按1和0排列, 从第一个索引到索引t只有1个, 从索引t + 1到n,只有0' s。 例子[1,1,1,1 ....,1,0,0 .... 0,0,0]
插入排序算法:
InsertionSort(Input: integer n, array A)
{
for j = 1 to n {
newnum = A[j]
i = j-1
while ( i > 0 and newnum < A[i] )
{
A[i+1] = A[i]
i = i-1
}
A[i+1] = newnum
}
}
这是我到目前为止所得到的:
\ sum _1 ^ n:\ left(c1 + \ sum _1 ^ {n-t} c2:\ right)
答案 0 :(得分:0)
内部while循环将第一个0
移动到1
列表左侧1
列表的右侧。有t
1
个跳结束,(n - t)
0
完全移动。
因此你有t * (n - t)
。
您可能希望也可能不希望在到达阵列中第一个t
所需的时间内添加另一个0
。