希尔排序
希尔排序是插入排序的一种,也称作缩小增量排序,其基本思想是:
先将待排序的序列分割成d个形如L[i,i+d,i+2d,…,i+kd]的特殊子表,分别进行直接插入排序,当整个表中的元素呈"基本有序时",再对全体记录进行一次直接插入排序。最终得到排好序的序列。
d的选取:
-
手动演示希尔排序的过程:
取待排序序列为: 46 55 13 42 94 17 5 70
-
代码如下:
//使用希尔排序进行升序排列
#include <stdio.h>
int ShellInsert(int A[], int n);
int main() {
int A[1024],n;
printf("请输入要输入的元素个数:");