03 2011 档案

摘要:再就是一组数中求几个最小的数选择什么方法要根据不同情况进行分类,详见博客:http://blog.csdn.net/pennyliang/archive/2009/10/08/4642641.aspx冒泡排序,在每一次比较的时候,如果发现相邻两数的次序不对,都会马上就把两数进行对调。选择排序,则在比较过程中(内循环里面)并不进行对调,而是先记录下最小(大)数的下标,在一次扫描完成后再进行对调 阅读全文
posted @ 2011-03-31 16:49 thinking and coding 阅读(283) 评论(0) 推荐(0)
摘要:用了接近一天的程序看懂了堆排序,堆排序的“筛选”的前提条件是一个大(小)顶堆,只有堆顶的元素不是有序的。这样从堆顶开始的排序才是筛选。而堆排序就是反复筛选的程序。 阅读全文
posted @ 2011-03-31 15:53 thinking and coding 阅读(448) 评论(0) 推荐(0)
摘要:递归解决时间复杂度为指数级的问题。今天在看幂集的算法时,试图用for循环来尝试进行非递归的算法,现在发现不可能,太过繁琐,而如果用递归解法,轻而易举。再比如树的搜索,当用简单的for循环无法进行下去的时候可考虑用递归。补充:今天下午想通了为啥图的优先和广度优先搜索的时间复杂度是o(n+e)了,n是图的顶点个数,e代表邻接表表示法边的个数。当时认为n和指数没有关系,现在发现还真有关系,指数的个数就是顶点个数,查找每个顶点需要查找的边的个数的总和就是e,太强大了,时间复杂度一分不差就是o(n+e). 阅读全文
posted @ 2011-03-29 11:09 thinking and coding 阅读(2629) 评论(0) 推荐(0)