数据结构与算法 ---- 希尔排序
程序员文章站
2022-06-04 12:50:40
...
希尔排序和折半插入排序都是对直接插入排序的改进
折半插入排序:https://blog.csdn.net/qq_41877840/article/details/109227231
希尔排序过程:
#include <stdio.h>
void ShellSort(int a[], int n);
int main()
{
int i;
int a[10] = {2,6,2,9,4,20,18,7,1,5};
ShellSort(a,10);
for(i=0; i<10; i++)
printf("%d ",a[i]);
return 0;
}
void ShellSort(int a[], int n)
{
for(int d=n/2; d>=1; d=d/2){
for(int i=d; i<n; i++){
if(a[i]<a[i-d]){
int j = i;
int temp = a[j];
while(temp<a[j-d] && j-d>=0){//将数组后移
a[j] = a[j-d];
j -= d;
}
a[j] = temp;//后移之后插入
}
}
}
}
上一篇: 数据结构与算法 | 希尔排序
下一篇: php中的日期时间函数(1/6)