C语言------希尔排序
来源:互联网 发布:遗传算法与svm 编辑:程序博客网 时间:2024/05/29 09:34
比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。
一般的初次取序列的一半为增量,以后每次减半,直到增量为1
#include <stdio.h>void shell_paixu(int a[],int n){ int gap,i,j,temp; for(gap = n / 2;gap < n;gap++) for(i = gap;i < n;i++) for(j = i - gap;j >= 0;j -= gap) { if(a[j] > a[j + gap]) { temp = a[j]; a[j] = a[j + gap]; a[j + gap] = temp; } }}int main(){ int a[] = {592,401,874,141,348,72,911,887,820,283}; shell_paixu(a,sizeof(a)/sizeof(int)); for(int i = 0;i < sizeof(a)/sizeof(int);i++) printf("%d",a[i]); printf("\n"); return 0;}
0 0
- 希尔排序C语言
- c语言希尔排序
- C语言希尔排序
- C语言------希尔排序
- 希尔排序(C语言)
- C语言希尔排序了解
- 希尔排序C语言代码
- C语言实现希尔排序
- c语言实现希尔排序
- C 语言算法排序 希尔
- C语言实现希尔排序
- 希尔排序C语言实现
- 希尔排序-C语言实现
- 希尔排序c语言实现
- 希尔排序-c语言实现
- 排序算法c语言描述---希尔排序
- C语言排序之希尔排序篇
- C语言实现排序算法---希尔排序
- 《Linux内核分析》-函数调用模型与堆栈分析
- 可见光U盘
- 谈Hibernate之核心接口
- 反射(3)--Constructor类(构造器)
- Oracle 11g的用户名和默认密码
- C语言------希尔排序
- UVa 978
- 图像处理算法(二)---图像常用颜色空间
- php 使用curl模拟ip和来源进行访问
- 线段树单点更新
- VS Code 折腾记
- typename的起源与用法
- Android实现录制视频
- C++之类外定义成员函数、inline成员函数详解