-2
我想了解一个我在网上找到的shell排序。这是代码:试图了解一个shell排序
for(increment = size/2;increment > 0; increment /= 2)
{
for(i = increment; i<size; i++)
{
temp = array[i];
for(j = i; j >= increment ;j-=increment)
{
//perform the insertion sort for this section
if(temp < array[j-increment])
{
array[j] = array[j-increment];
}
else
{
break;
}
}
array[j] = temp;
}
}
我明白,第一个循环不断将数组中元素的个数由2直到它到达1。但我真的不理解的代码的其余部分。
把它放在调试器中,逐步执行代码,并使用watch观察各个变量的值,看它是如何工作的:-) – 2014-12-03 04:25:05
并使用一个非常小的文件5行?)与1个重复作为您的测试数据。 – shellter 2014-12-03 04:26:08