插入排序和希尔排序执行效率的比较

现在晚上睡觉之前都会看一会讲算法的书。因为大三的时候,没有怎么好好学习过算法,而之前C/C++也一直没认真上过课,所以这次看书也像新学一样从头开始看。最先讲的算法肯定是排序算法。冒泡算法还是一看就明白了,插入也能看明白,但希尔算法看了两个晚上也没能搞明白。今天终于通过代码实现了。希尔算法也是基于插入排序算法的,但比简单的插入排序效率要高很多。当待排序数目更多时,效率高得更明显。以下是完整C源代码:

 

去除代码注释可以查看每次排序后的结果。

当数组规模为10时,希尔排序数据移动次数只有插入排序的一半;当数组规模为100时,插入排序需要移动次数大概是希尔排序的5倍;当数组规模为100时,插入排序需要移动次数大概是希尔排序的30倍。

(原博客发布时间:2011-10-27 14:03:51)

八皇后问题,通过回溯,用Java实现

八皇后问题是:在八行八列的格子上放8个皇后(棋子),使得任意两个皇后都攻击不到对方,即使得他们都不在同一行同一列和同一斜线上。

记得以前学C语言的时候,就见过这个问题,但当时怎么都弄不懂。现在看Java的书,书上课后练习有这个题目,就上网搜了一下怎么做,现在终于差不多懂了。代码和注释如下:

 

参考文章:http://blog.csdn.net/lixiaoshan_18899/article/details/1286716

(原博客发布时间:2012-01-06 13:39:10)

php 实现计数排序

算法还是很重要嘀~
直接贴代码:

 

今天又重新梳理了一遍,不能根据这个代码看出计数排序是稳定排序: