排序算法之Shell排序(希尔排序)
来源:互联网 发布:c语言中 ||是什么意思 编辑:程序博客网 时间:2024/06/02 00:34
Shell排序
思想:先可进行分组,再利用插入排序。分组的方法是根据步长的设置从a[0]开始,并且不大于步长,组内相邻两个元素的逻辑距离是gap。分组结束的标志是gap为0,也就是已经全部按照大小排列。
//给定数组shell排序,从小到大排列。
#include <stdio.h>
int main()
{
inti,j=1,t,k,gap;
inta[10]={1,23,41,31,45,767,48,90,6,88};
gap=10/2;
while(gap>0)
{
for(i=0;i<gap;i++)
{
for(j=i+gap;j<10;)
{
t=a[j];
k=j;
while(k>gap-1&& t< a[k-gap]) //这里的while改成if就不对了
{
a[k] = a[k-gap];
k-=gap;
}
a[k]=t;
j+=gap;
}
gap/=2;
}
}
printf("\nThesorted numbers are:\n");
for(i=0;i<10;i++)
{
printf("%5d",a[i]);
}
printf("\n\nend\n");
}
- 排序算法之Shell排序(希尔排序)
- 每天一个小算法之Shell排序(希尔排序)
- 排序算法(Shell Sorting希尔排序)
- 排序算法---希尔排序(Shell Sort)
- 希尔(shell)排序算法
- 排序之希尔排序(Shell Sort)
- 插入排序之希尔(shell)排序
- Java排序算法:希尔排序(Shell排序)
- 希尔排序和shell之希尔排序
- Java排序算法(八):希尔排序(Shell排序)
- Java排序算法(八):希尔排序(Shell排序)
- Java排序算法(八):希尔排序(Shell排序) .
- Java排序算法(八):希尔排序(Shell排序)
- Java排序算法(七):希尔排序(Shell排序)
- 【排序算法 】希尔排序 shell sort(插入类排序)
- 排序算法之希尔排序(Shellsort)
- 排序算法之希尔排序(ShellSort)
- Shell排序(希尔排序)
- C++函数调用 入栈以及出栈
- cmd常用命令
- java day03-day05 基础知识梳理
- c++经典题----统计一个文件“is”单词的个数
- String_Sequence(字符串的顺序存储)
- 排序算法之Shell排序(希尔排序)
- actionFrom和 actionMapping
- lintcode最多有多少个点在一条直线上
- 排序算法之快速排序
- DH实现加密算法
- python 学习心得(1)〖笨方法学python〗
- 排序算法之选择排序
- Sklearn 中的 GridSearchCV
- Hexo博客搭建之使用Hexo+GitHub搭建个人博客