public static void Sort(int[] arr)
{
int inc;
for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ; //这个是什么意思??是for循环么??
for (; inc > 0; inc /= 3)
{
for (int i = inc + 1; i <= arr.Length; i += inc)
{
int t = arr[i - 1];
int j = i;
while ((j > inc) && (arr[j - inc - 1] > t))
{
arr[j - 1] = arr[j - inc - 1];
j -= inc;
}
arr[j - 1] = t;
}
}
}
详细解释下这个方法的每一步
{
int inc;
for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ; //这个是什么意思??是for循环么??
for (; inc > 0; inc /= 3)
{
for (int i = inc + 1; i <= arr.Length; i += inc)
{
int t = arr[i - 1];
int j = i;
while ((j > inc) && (arr[j - inc - 1] > t))
{
arr[j - 1] = arr[j - inc - 1];
j -= inc;
}
arr[j - 1] = t;
}
}
}
详细解释下这个方法的每一步
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货