实习之路--点滴积累五

接下来说说希尔排序。

原理:

(1)将数组分为多个组,每个组的组内的元素位置相隔一个“增量”

(2)对每个组进行插入排序

(3)将“增量”值减少,然后循环

需要说明的是:

(1)“增量”值的选择问题,最后一个一定是1,比如,可以为,5、3、1或者5、2、1

代码如下:

 1 void Shell_Sort(long *p, long n)
 2 {
 3     long gap = n / 2;
 4     while (gap)
 5     {
 6         for (long i = 0; i < gap; i++)
 7         {
 8             for (long j = i + gap; j < n; j += gap)
 9             {
10                 if (p[j] < p[j - gap])
11                 {
12                     int k = j - gap;
13                     int temp = p[j];
14                     while ( k >= 0 && temp < p[k])
15                     {
16                         p[k + gap] = p[k];
17                         k -= gap;
18                     }
19                     p[k + gap] = temp;
20                 }
21             }
22         }
23         gap /= 2;
24     }
25 }

测试用例:

1 int main()
2 {
3     long s[] = { 3, 8, 1, 9, 10, 4, 2, 7, 5, 6 };
4     Shell_Sort(s, 10);
5     for (long i = 0; i < 10; i++) cout << s[i] << ends << ends;
6     return 0;
7 }

实验截图:

时间: 2024-08-02 17:05:55

实习之路--点滴积累五的相关文章

Mr.Xu的找实习之路

长长的路慢慢走 深深的话浅浅说 --广工Mr.Xu的找前端实习之路 这 不(display:none) 是 广 告 本人广工大三学生一枚,也是学校TopView团队的成员之中的一个.之前我们团队有位屌丝写了一篇<大三广工屌丝男性实习逆袭>,大家有兴趣的能够去看看.为了保持队形,为了宣传下我们的团队,我不得不明目张胆地插播一则广告.这个不是炫耀,是赤裸裸的卖广告.今年topview团队暑假找实习的战绩是3个腾讯,2个阿里,2个金山(未完待续,说不定还有UC等其它公司).眼下TopView团队即将

全栈JavaScript之路(十五)HTML5 focus 扩展 (焦点扩展)

HTML5 添加了辅助管理 focus 的功能,  文档获得焦点的途径有; 页面加载,用户输入(一般是按tab键),和 在代码中调用focus()函数. HTML5新增的辅助管理焦点的属性与方法有: document.activeElement 属性, 这个属性指向获得焦点的元素,文档加载期间 值为null, 文档加载完成,保存得是  document.body 的引用. document.hasFocus()方法, 确定文档是否获得了焦点. 查询文档获知哪个元素获得了焦点,以及确定文档是否获得

点滴积累【C#】---验证码,ajax提交

效果: 思路: 借用ashx文件创建四位验证,首先生成四位随机数字.然后创建画布,再将创建好的验证码存入session,然后前台进行button按钮将文本框中的值进行ajax请求到后台,和session中的验证码进行对比,成功返回true,失败返回false. 代码: [前台] 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="verifycodeDemo.aspx.cs"

移动前端webApp开发点滴积累20140629

#移动前端webApp开发点滴积累20140629 ##关于input行内居中的问题 给input设定一个比较高的高度,在某些版本的移动设备上,文字不能垂直居中,即使设定了相同的行高也不行.(见图) ![input行内居中](http://images.cnitblog.com/i/84053/201406/292134125542918.jpg) 在这种情况下,我一般不改变input本身的高度,而是在input外围包裹一层,再在外围层做效果. [demoURL](http://gh.p2227

Python之路【第五篇】:面向对象和相关

Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 1 2 3 4 5 6 class Foo(object):     pass obj = Foo() isinstance(obj, Foo) 二.issubclass(sub, super) 检查sub类是否是 super 类的派生类 1 2 3 4 5 6 7 class F

点滴积累【C#】---Highcharts图形统计

效果: 思路: 后台获取数据!然后拼接为前台所要求的格式,再将拼接好的StringBuilder给了hidden控件! 然后前台获取JQuery获取Hidden的值,最后将值赋给图形! 代码: [前台] 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Statistical.aspx.cs" Inherits="Demo.Statistical" %

VsVim -- 编程路上的点滴积累

VsVim -- 编程路上的点滴积累 不经意发现了VsVim,喜欢折腾Vim的Vimer,当然是福音.其实高手一直就在我们身边,只是我们有没有发现的眼睛:真是正所谓:没有做不到,只有没想到! 先记录,日后慢慢整理: 时间:2018年06月18日 00:52:571."+y表示从vim复制到系统剪切版:2."+p表示从外部文件(系统剪切版)粘帖到vim: 原文地址:http://blog.51cto.com/13555061/2130215

我的编程之路点滴记录(五)

html5 要火了吗? 随着微信越来越火的趋势,微信朋友圈似乎给h5带来了新一轮的春天,特别是不久前h5标准的定稿.很多人开始奔走相告:前端要火了,h5的春天来了.作为一个入门级别的程序员,我不敢过早的断言到底 web app  和 native app 最终谁会胜利,因为我还没有那个资格.仅仅从自己的一些观察和体会说一下. 移动互联貌似从08年左右开始火起来,到目前为止也产生了不少优秀的软件.智能手机在改变着我们的生活,很难想象一个人没有手机没有网络的日子,手机和app已经融入了我们的生活.但

我的编程之路(二十五) 上海的老同学

1.老同学 之前来上海之前,就有位以前玩的很好的小学同学让我来上海之后记得去找他,确实,在上海,以前的不少同学都在这里,但是我很怕再次见到他们会有隔阂,但是毕竟很久不见,出于礼貌,还是要见见的. 见的第一位老同学是一位假小子,高中同学,因为性格原因和我们男生玩的都不错,因为我们那一届70%都复读了,所以,她今年大四,准备找实习单位了,通信专业,说好第二天上午10点左右能到,我就九点多在等,可是硬硬等了2个多小时她才到,要不是我脾气好,我···哎,就带她去田子坊逛逛吧,送给她两件小挂饰品,不过她在