常见的排序算法二——希尔排序

简介:

原理:被称为增量缩小排序。先将序列按增量划分为元素个数相同的若干组,

使用直接插入排序法进行排序,然后不断缩小增量直至为1,

最后使用直接插入排序完成排序。

  

要点:增量的选择以及排序最终以1为增量进行排序结束。

实现:

Void shellSort(Node L[],int d)

{

While(d>=1)//直到增量缩小为1

{

Shell(L,d);

d=d/2;//缩小增量

}

}

Void Shell(Node L[],int d)

{

Int i,j;

For(i=d+1;i<length;i++)

{

if(L[i]<L[i-d])

{

L[0]=L[i];

j=i-d;

While(j>0&&L[j]>L[0])

{

L[j+d]=L[j];//移动

j=j-d;//查找

}

L[j+d]=L[0];

}

}

}

   这个希尔排序的算法 算法的复杂度是O(n2) 

目录
相关文章
|
1月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--希尔排序
数据结构与算法(Java篇)笔记--希尔排序
|
5月前
|
算法 搜索推荐 Shell
Python算法——希尔排序
Python算法——希尔排序
37 0
|
6月前
|
算法 搜索推荐 C++
基本算法-希尔排序
基本算法-希尔排序
|
15天前
|
人工智能 搜索推荐 Shell
【排序算法】插入排序与希尔排序,你不想知道为什么希尔比插入更快吗?
【排序算法】插入排序与希尔排序,你不想知道为什么希尔比插入更快吗?
|
17天前
|
搜索推荐 算法 Shell
【数据结构与算法】直接插入排序和希尔排序
【数据结构与算法】直接插入排序和希尔排序
|
29天前
|
搜索推荐 算法
【排序算法】一文教你从零学会希尔排序
【排序算法】一文教你从零学会希尔排序
|
1月前
|
搜索推荐 测试技术
排序算法-插入/希尔排序
排序算法-插入/希尔排序
10 0
|
2月前
|
搜索推荐 算法 Java
【数据结构排序算法篇】----希尔排序【实战演练】
【数据结构排序算法篇】----希尔排序【实战演练】
26 2
|
2月前
|
机器学习/深度学习 搜索推荐 测试技术
希尔排序算法
希尔排序算法
27 0
|
3月前
|
搜索推荐 Shell Python
【Python排序算法系列】—— 希尔排序
【Python排序算法系列】—— 希尔排序
33 0