不难 public static void ShellSort(int[] list) { int h = 1; while (h <= list.Length / 9) { h = h * 3 + 1; } for (; h > 0; h = h / 3) { for (int i = h + 1; i <=list.Length; i += h) { int temp = list[i - 1]; int j = i; while ((j > h) && (list[j - h - 1] >temp)) { list[j-1] = list[j - h - 1]; j -= h; } list[j - 1] = temp; } } }
public static void ShellSort(int[] list)
{
int h = 1;
while (h <= list.Length / 9)
{
h = h * 3 + 1;
}
for (; h > 0; h = h / 3)
{
for (int i = h + 1; i <=list.Length; i += h)
{
int temp = list[i - 1];
int j = i;
while ((j > h) && (list[j - h - 1] >temp))
{
list[j-1] = list[j - h - 1];
j -= h;
}
list[j - 1] = temp;
}
}
}