查看本页的Implementation和部分。Analysis
考虑那里提出的算法:
private static void insertionsort()
{
int i, j, t;
for (i=1; i<n; i++)
{
j=i;
t=a[j];
while (j>0 && a[j-1]>t)
{
a[j]=a[j-1];
j--;
}
a[j]=t;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意, while 循环运行v[i]迭代,其中v[i]是 element 引起的反转次数i。这应该会使那里的证明非常容易理解。