前言:
希尔排序是对插入排序的一种改进,下面我就说说希尔排序是怎么实现的。
内容:
(1)基本思想:
先将整个待排序列分割成若干子序列,然后分别进行直接插入排序,待整个序列中的记录基本有序时,在对全体记录进行一次直接插入排序。
(2)基本做法:
(3)代码展示:
namespace xierpaixu
{
class Program
{
static void Main(string[] args)
{
int[] array = new int[] { 0, 8, 5, 3, 7, 2, 9, 1, 4, 6 };
int n = array.Length;
int i;
shellsort (array ,n );
for (i = 0; i < n; i++)
{
Console.WriteLine(array[i]);
}
Console.Read();
}
public static void shellsort(int[] array, int n)
{
int i, j, gap;
for (gap = n / 2; gap > 0; gap = gap / 2)
{
for (i = 0; i < gap ; i++)
{
for (j = i + gap; j < n; j = j + gap)
{
int temp = array[j];
int k = j - gap;
while (k >= 0 && array[k] > temp)
{
array[k + gap] = array[k];
k -= gap;
}
array[k + gap] = temp;
}
}
}
}
}
}