博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每天一个小算法(Shell Sort2)
阅读量:6846 次
发布时间:2019-06-26

本文共 1023 字,大约阅读时间需要 3 分钟。

希尔排序:

伪代码:

input: an array a of length n with array elements numbered 0 to n − 1inc ← round(n/2)while inc > 0 do:        for i = inc .. n − 1 do:                temp ← a[i]                j ← i                while j ≥ inc and a[j − inc] > temp do:                        a[j] ← a[j − inc]                        j ← j − inc                a[j] ← temp        inc ← round(inc / 2)

 

 

C语言实现:

 

#include 
#include
#define LEN 10 int main(){ int i, j, temp; int gap = 0; int a[] = {10,9,8,7,6,5,4,3,2,1}; while (gap<=LEN) { gap = gap * 3 + 1; } while (gap > 0) { for ( i = gap; i < LEN; i++ ) { j = i - gap; temp = a[i]; while (( j >= 0 ) && ( a[j] > temp )) { a[j + gap] = a[j]; j = j - gap; } a[j+gap] = temp; } gap = ( gap - 1 ) / 3; } for(i=0;i

 

 

 

转载于:https://www.cnblogs.com/batteryhp/p/5020512.html

你可能感兴趣的文章
HDU1892 See you~
查看>>
【ADT】链表的基本C语言实现
查看>>
缓存策略
查看>>
5.管理控制文件和日志文件
查看>>
爬取大半导体网新闻内容保存到word(基于python3.6)
查看>>
2019年1月4日
查看>>
【阅读笔记】Prostate Cancer Diagnosis using Deep Learning with 3D Multiparametric MRI
查看>>
解读《德勤2017年全球CIO报告》:顶级CIO的炼成之道
查看>>
A Tour of Go Nil slices
查看>>
第29条:理解引用计数
查看>>
boost asio中io_service类的几种使用
查看>>
[Java]HashMap的两种排序方式
查看>>
slice、splice、concat操作后数组的变化
查看>>
DEDE栏目内容调用
查看>>
icheck.js的一个简单demo
查看>>
mysql语句记录
查看>>
消息中间件rabbitmq(3)
查看>>
CSS :hover伪类选择定义和用法
查看>>
php文件删除unlink()详解
查看>>
(Access denied for user 'root'@'localhost' (using password: NO))
查看>>