希尔排序(C语言)

#define MAXSIZE 10

typedef struct

{

int r[MAXSIZE + 1];

int length;

}

/*对顺序表L做希尔排序*/

void ShellSort(SqList *L)

{

int i , j;

int increment = L->length;/*增量*/

do{

increment = increment/3+1;

for(i=increment+1; ilength; i++)

{

if(L->r[i]r[i-increment])

{

L->r[0]=L->r[i]

for(j=i-increment; j>0&&L->r[0]r[j];j-=increment)

{

L->r[j+increment] = L->r[i];

}

L->r[j+increment]=L->r[0];

}

}

}while(increment>1);

 

 

}

你可能感兴趣的:(希尔排序,数据结构,C语言)