一:剪枝策略的寻找的方法
1)微观方法:从问题本身出发,发现剪枝条件
2)宏观方法:从整体出发,发现剪枝条件。
3)注意提高效率,这是关键,最重要的。
总之,剪枝策略,属于算法优化范畴;通常应用在DFS 和 BFS 搜索算法中;剪枝策略就是寻找过滤条件,提前减少不必要的搜索路径。
二:剪枝算法(算法优化)
1、简介
在搜索算法中优化中,剪枝,就是通过某种判断,避免一些...
分类:
编程语言 时间:
2015-03-05 10:50:02
阅读次数:
181
1.基本冒泡排序 冒泡排序的基本思想:假设被排序的记录数组d[1...N]垂直竖立,将每个记录d[i]看作是一个气泡,那么重的气泡就会向下下沉,轻的气泡就会向上升。每次都是相邻的两个气泡d[i]和d[i+1]进行比较。如果d[i]>d[i+1],那么就交换两个气泡,然后在比较d[i+1]和d[i+2...
分类:
编程语言 时间:
2015-03-03 21:59:21
阅读次数:
191
年前较闲的时候研究了一下WPF的性能优化,练手的时将之前写的弹幕播放器给重新写了一下。年前的时间不大够,没有写完,这两天接着弄了一下,基本上弄得差不多了。主要重写了底层的渲染算法,优化后效果还是非常明显的,试了几个BiliBili上的热门的弹幕,基本上满屏的弹幕依然能流畅播放。在我的i5-750上,...
首先,在谈到素数筛选法时,先涉及几个小知识点.
1.一个数是否为质数的判定.
质数,只有1和其本身才是其约数,所以我们判定一个数是否为质数,只需要判定2~(N - 1)中是否存在其约数即可,此种方法的时间复杂度为O(N),随着N的增加,效率依然很慢。这里有个O()的方法:对于一个合数,其必用一个约数(除1外)小于等于其平方根(可用反证法证明),所以我们只需要判断2~之间的数即可.
b...
分类:
其他好文 时间:
2015-02-20 22:03:45
阅读次数:
321
作者信息
文字描述
倒置:把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,记作AT或A。
通常矩阵的第一列作为转置矩阵的第一行,第一行作为转置矩阵的第一列。
那么,在已经存储好的三元组的顺序存储结构中,如果如何实现矩阵的倒置呢???
第一反应肯定是直接遍历,然后行列对换即可,但是因为要求按照行号优先(也可以是列号优先,但是必...
分类:
编程语言 时间:
2015-02-04 16:47:06
阅读次数:
175
通常对于大型的数据中心网络(Data Center Networks, 简称DCN)来说,每一台服务器的使用情况是非常不一样的,而平均使用的情况几乎不存在,大部分的情况都是70%的使用和流量需求会集中在一小部分的服务器上,而这个也是通过LAN网络构建云计算中心所必不可免的问题。
如图是大部分情况下数据中心服务器使用的热点情况:...
分类:
编程语言 时间:
2015-01-11 16:16:15
阅读次数:
230
和分治思想的第一次相遇
当问题的规模是可以划分的时候,分治的算法往往是很有效的:
不断分割问题的规模,直到子问题的规模足够小便直接求解,之后不断整合子问题的解得到更大规模的解,最后得到完全解。
归并排序就是分治算法的一个简单的例子。
可能有人觉得快速排序也是属于分治算法,但我不这么觉得,因为快速排序是先得到大问题的解的一部分,再靠子问题来完成解,
并没有整合子问题这一步,所以硬要说的...
分类:
编程语言 时间:
2015-01-08 02:09:41
阅读次数:
290
生活中的“插入排序”
扑克牌我们大部分人都玩过,当然也都知道该怎么把刚抓上来的牌放哪里,最后得到一手排好的牌。但其中所蕴含的算法原理
不知道你有没有想过。计算机科学家把人的这一直观想法翻译为计算机程序于是便有了我们所说的插入排序:
图示
代码(C++)
/*************************************
函数:插入排序
说...
分类:
编程语言 时间:
2015-01-06 18:06:14
阅读次数:
208
为什么叫快速排序
这个标题是带有歧义的,每一种排序都有自己的名字,有的是发明者+排序(Shell排序),有的是用的步骤名称+排序(插入排序)...
而快速排序是以它的属性+排序为名(这不是废话吗)。那么我再换个意义明确的标题:
快速排序为什么那么快
要弄明白这一点首先需要了解基于比较的排序模型:决策树
对大小为n的输入,其位置关系有n!种可能。排序算法的工作就是在所有...
分类:
编程语言 时间:
2015-01-06 10:14:03
阅读次数:
249
题意:给出n,求把n写成若干个连续素数之和的方案数。分析:这道题非常类似大白书P48的例21,上面详细讲了如何从一个O(n3)的算法优化到O(n2)再到O(nlogn),最后到O(n)的神一般的优化。首先筛出10000以内的素数,放到一个数组中,然后求出素数的前缀和B。这样第i个素数一直累加到第j个...
分类:
编程语言 时间:
2015-01-06 00:47:52
阅读次数:
187