2014年4月27日周总结(1)

【插入排序】

数组前k-1个元素已经有序,如何确定第k个元素的插入位置,使得这k个元素有序。

方法1:从左到右扫描扫描这个有序子数组,直到遇到第一个大于等于A[k]的元素,然后把A[k]插在这个元素的前面。

方法2:从右到左扫描这个有序子数组,直到遇到第一个小于等于A[k]的元素,然后把A[k]插在这个元素的后面。

【希尔排序】

先将数组分组,分别对每组进行插入排序,依次减少分组数进行插入排序,最后对分组数为1,即对整个数组进行插入排序。

【代码】

#include <stdio.h>
#include <stdlib.h>

void InsertionSort(int a[], int n)
{
	int i, j;
	int tmp;
	for(i = 1; i < n; i++)//方法2的插入方式
	{
		tmp = a[i];
		j = i - 1;
		while ( j >= 0 && a[j] > tmp)
		{
			a[j + 1] = a[j];
			j--;
		}
		a[j + 1] = tmp;
	}
}

void ShellSort(int a[], int n)
{
	int step;
	int i, j, k;
	int tmp;
	for(step = n / 2; step > 0; step /= 2)  //不同步长的分组
		for(k = 0; k < step; k ++)  //总共分成step组
			for(i = k + step; i < n; i+=step) //对每组进行插入排序
			{
				tmp = a[i];
				j = i - step;
				while(j >= 0 && a[j] > tmp)
				{
					a[j + step] = a[j];
					j = j - step;
				}
				a[j + step] =tmp;
			}
}

int main(void)
{
	int a[7] = {5, 7, 3, 0, 4, 9, 8 };
	int n = sizeof(a)/sizeof(int);
	InsertionSort(a, n);
    ShellSort(a, n);
	for(int i = 0; i < n; i++)
		printf("%d ", a[i]);
	printf("\n");
	return 0;
}
时间: 2024-10-08 11:13:25

2014年4月27日周总结(1)的相关文章

2014年5月27日中国大陆封锁Google事件解决的方法

2014年5月27日中国大陆封锁Google事件指自2014年5月27日后,Google公司的各项服务遭到疑似来自防火长城的恶意干扰,导致中国大陆地区的用户无法正常使用其服务的事件.自当天起,来自中国大陆的用户发现Google旗下的各个分站以及Google的其它服务(Google Play.Gmail.Google Docs等)均无法正常訪问与使用,甚至无法登陆Google账户.谷歌中国旗下的谷歌地图.谷歌翻译依然能够使用,但部分地区仍有连接被重置.连接超时等情况 最新谷歌镜像git网址:htt

2014年4月27日 后悔书

学习算法这么久了,没有多少长进,找不到原因,以至于没有没有动力,懒散,前行困难. 在最近我做题和学习的种种方面,我突然发现我的致命问题.我放弃了数学. 自从学习编程一来,我把课都放弃了. 整个大一的高等数学没去上几节课,挂了,可以说什么也不会. 线性代数,一样,什么也不会. 概率论同样. 离散这学期开的课,到现在为止,用我们离散老师的话说就是"×××是不是我们班的,点名一次都没到过". 今天我认识到了错误,在这里写下后悔书,希望以后能够警钟长鸣. 同时告诫学习算法的同学们,数学重于泰山

2014年5月27日中国大陆封锁Google事件解决办法

2014年5月27日中国大陆封锁Google事件指自2014年5月27日后,Google公司的各项服务遭到疑似来自防火长城的恶意干扰,导致中国大陆地区的用户无法正常使用其服务的事件.自当天起,来自中国大陆的用户发现Google旗下的各个分站以及Google的其他服务(Google Play.Gmail.Google Docs等)均无法正常访问与使用,甚至无法登陆Google账户.谷歌中国旗下的谷歌地图.谷歌翻译依旧可以使用,但部分地区仍有连接被重置.连接超时等情况 最新谷歌镜像git网址:htt

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期(2014年11月27日 16:31:49)

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期参考网络(2014年11月27日 16:31:49 浙江) // 格式化当前日期 获取date天后的日期    function getNowFormatDate(date) {        var day = new Date();        var Year = 0;        var Month = 0;        var Day = 0;        var CurrentDate = "";  

周浩晖 - 斗宴(2014年12月27日)

<死亡通知单:暗黑者> 作 者:周浩晖译 者:系 列:暗黑者出 版:时代文华书局字 数:255千字阅读完成:2014年11月10日

2014年12月27日 迅雷会员账号分享 最新更新

迅雷会员账号分享147327541:1密码1092217迅雷会员账号分享147327541:2密码9079881迅雷会员账号分享817531368:1密码1272054迅雷会员账号分享817531368:2密码1204275迅雷会员账号分享651290788:1 密码9906390迅雷会员账号分享349532055:1 密码8185444迅雷会员账号分享349532055:2 密码0249725迅雷会员账号分享307362307:1 密码3940448迅雷会员账号分享307362307:2 密码

《程序员的思维修炼》摘抄start:2014年9月27日19:27:07

程序员的思维修炼:摘抄:考虑到社会中各个相关团体的复杂交互影响和社会的持续变化,在我看来当前最重要的两项技能就是: ?沟通能力: ?学习和思考能力.软件行业正在逐步提高沟通能力.特别是敏捷方法(见注解栏),强调了团队成员之间.最终客户和开发团队之间的沟通交流. 程序员需要不断地学习——不仅仅是学习新技术,还包括应用的问题域.用户社区的奇思妙想.同事的古怪习惯.行业的八卦新闻和项目演进的重要特征,我们必须学习学习再学习,持续不断地学习,然后把学习成果应用到解决日常遇到的一切新旧问题上. 专家精通者

09.27日记(2014年9月27日10:33:50)

耳机 POI.chart 图表.地图 排行榜--网页链接.优酷创收--每周抓取.小说,书籍.读书笔记 纯CSS.地图应用.HFLS的计算方式 (1)OpenStreetMap :官网.OSC简介 (2)Pure:官网.中文版.中文版Git.OSC简介 (3)那些网站:USPCAT .极客标签.慕课网.devstore.

2014北京项目管理论坛于7月27日成功举办

2014年7月27日,2014北京项目管理论坛在北京天伦松鹤大饭店隆重召开.此次论坛由国家外国专家局培训中心.PMI(中国)联合主办,共创国际-项目管理者联盟承办.这次活动我们有幸邀请到了国家外国专家局培训中心副主任邹力先生.PMI(中国)董事总经理陈永涛先生.PMI(印度)董事总经理Raj Kalady先生.项目管理者联盟高级顾问.中国5颗卫星的总质量师栾大龙大校.  这次论坛吸引了超过500名的听众参加,其中绝大多数拥有PMP资质. 会议现场 首先,国家外国专家局培训中心副主任邹力先生为20