首页
最新活动
服务器租用
香港服务器租用
台湾服务器租用
美国服务器租用
日本服务器租用
新加坡服务器租用
高防服务器
香港高防服务器
台湾高防服务器
美国高防服务器
裸金属
香港裸金属服务器
台湾裸金属服务器
美国裸金属服务器
日本裸金属服务器
新加坡裸金属服务器
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
CDN
CDN节点
CDN带宽
CDN防御
CDN定制
行业新闻
官方公告
香港服务器资讯
帮助文档
wp博客
zb博客
服务器资讯
联系我们
关于我们
机房介绍
机房托管
登入
注册
帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
联系客服
服务器资讯
/
香港服务器租用
/
香港VPS租用
/
香港云服务器
/
美国服务器租用
/
台湾服务器租用
/
日本服务器租用
/
官方公告
/
帮助文档
数据结构第四天(希尔排序)
发布时间:2024-03-03 09:08:45 分类:帮助文档
数据结构第四天(希尔排序) 目录 前言 概述 源码: 主函数: 运行结果: 前言 今天是插入排序的最后一个了,希尔排序。 哈哈,这可不意味着数据结构结束了,明天将开启新的篇章:交换排序。 学习算法的过程,并不总是坦坦大路,只要友友们喜欢,喵喵我呀,一定会分享每天所得,每天的点点滴滴,以及喵喵与代码的情仇恩怨。 概述 利用(http://数据结构第一天(生成1000以内的随机数自动填充数组)中的代码自动生成五个随机整数,并自动储存在数组中: 其实,直接插入排序的效率在某些时候是很高的,比如, 我们的记录本身就是基本有序的,我仍只需要少量的插入操作,就可以完成整个记录 集的排序工作,此时直接插入很高效。还有就是记录数比较少时,直接插入的优势也 比较明显。可问题在于,两个条件本身就过于苛刻,现实中记录少或者基本有序都属 于特殊情况 。 有条件当然是好,条件不存在,我们创造条件也是可以去做的。 我们可以想到,将原本有大量记录数的记录 进行分组。分割成若干个子序列,此时每个子序列待排序的记录个数就比较少了,然 后在这些子序列内分别进行直接插入排序,当整个序列都基本有序时,注意只是基本 有序时,再对全体记录进行一次直接插入排序。 因此,我们可以采取跳跃分割的策略 :将相距某个‘增量'的记录组成 个子 序列,这样就能保证在子序列内分别进行直接插入排序后得到的结果是基本有序的。 需要补充说明的是:这个增量必须是互质的,比如增量选择为7,5,3,1这样的一系列分组,同时,最后一个增量必须为1;这一系列增量我们可以通过来获取。 下面就以增量为3,1举例: 增量为3时,1和4为一组,2 和5为一组, 排序结果: 经过上一轮分组排序之后,基本变成有序的了 ,最后增量为1分组,数组中所有元素都会参加排序: 最终排序结果如下: 源码: void sort(int* dest, const unsigned int dataCnt, int interval) { int minNum = *dest; int circleTime = 0; (dataCnt%interval > 0) ? circleTime = dataCnt / interval + 1 : circleTime = dataCnt / interval; for (int k = 0; k <= interval; ++k) { for (int i = 0; i < circleTime; ++i) { for (int j = 0; j
0; --i) { int interval = pow(2, i) - 1; sort(dest, dataCnt, interval); } } 主函数: int main() { int array[16] = { 0 }; numberProducer.getFilledArray(array,16); cout << " 原 始 数 据 :"; numberProducer.showArray(array,16); sortByShellInsert(array, 16, 5); cout << "希尔插入排序后 :"; numberProducer.showArray(array, 16); sortByBinarySearchInsert(array, 16); cout << "折半插入排序后 :"; numberProducer.showArray(array, 16); sortByDirectInsert(array, 16); cout << "直接插入排序后 :"; numberProducer.showArray(array, 16); system("pause"); return 0; } 运行结果:
上一篇
服务器租用行业的真实感受是什么
下一篇
云服务器租用是什么意思
相关文章
比特球云盘pc端怎么磁力下载
mc云域服务器怎么设置领地
服务器高性能ssd怎么样
上线服务器流程用法及说明
vpn主机名怎么看
幻兽帕鲁服务器价格多少钱?幻兽帕鲁服务器搭建教程
搭建spring security oauth2认证授权服务器
阿里云1核1g服务器怎么样不卡
服务器上怎么安装织梦
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价
7*24H在线售后
高可用资源,安全稳定
1v1专属客服对接
无忧退款试用保障
德讯电讯股份有限公司
电话:00886-982-263-666
台湾总部:台北市中山区建国北路一段29号3楼
香港分公司:九龙弥敦道625号雅兰商业二期906室
服务器租用
香港服务器
日本服务器
台湾服务器
美国服务器
高防服务器购买
香港高防服务器出租
台湾高防服务器租赁
美国高防服务器DDos
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
行业新闻
香港服务器租用
服务器资讯
香港云服务器
台湾服务器租用
zblog博客
香港VPS
关于我们
机房介绍
联系我们
Copyright © 1997-2024 www.hkstack.com All rights reserved.