1、希尔排序
希尔排序是对插入排序的一种改进,插入排序的实现可以参考这篇文章http://blog.csdn.net/tech_pro/article/details/78016096。希尔排序具体实现如下:
/* 原始希尔排序 */
void Shell_sort( ElementType A[], int N )
{
int D, P, i;
ElementType Tmp;
for ( D=N/2; D>0; D/=2 )
{
/* 希尔增量序列*/
for ( P=D; P<N; P++ )
{
/* 插入排序*/
Tmp = A[P];
for ( i=P; i>=D && A[i-D]>Tmp; i-=D )
A[i] = A[i-D];
A[i] = Tmp;
}
}
}
2、完整示例代码
/* 原始希尔排序的简单实现 */
#include <stdio.h>
/* 定义一些辅助数据结构或者类型 */
typedef int ElementType;
/* 原始希尔排序 */
void Shell_sort( ElementType A[], int N )
{
int D, P, i;
ElementType Tmp;
for