
算法
文章平均质量分 90
joker_wqz
这个作者很懒,什么都没留下…
展开
-
回溯法
搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。 算法思想 回溯(backtracking)是一种系统地原创 2013-08-21 09:59:27 · 683 阅读 · 0 评论 -
排序算法
快排是目前公认的最好的排序算法,当排序关键字是随机分布是,平均时间最短。 一、选择排序 1. 基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 2. 排序过程: 【示例】: 初始关键字 [49 38 65 97 76 13 27 49] 第一趟排序原创 2013-08-27 10:48:12 · 612 阅读 · 0 评论 -
子集和全排列问题
列出所有子集(采用列出2进制数的方法) 问题描述:列出给定集合的所有子集合,包括空子集。 思路:一个集合的所有子集合的个数是个(n是集合中元素的个数),而一个位数为n的二进制也可以表示个数,所以,只要产生出了所有二进制数,就可以列出所有的子集了。在二进制的求解中,先来看这样一个例子。 11111 01111 + 1 ---原创 2013-08-27 14:37:16 · 923 阅读 · 0 评论 -
贪心算法
贪心算法的设计思想 贪心算法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得整体最优解,通常可以获得近似最优解。 引例 [找零钱] 一个小孩买了价值少于1美元的糖,并转载 2013-08-28 09:37:21 · 626 阅读 · 0 评论 -
KMP算法
KMP算法 KMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。 在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的原创 2013-08-29 09:05:24 · 522 阅读 · 0 评论