算法思想:
设有字符串s[] = "121"
第一步:通过在每个字符左右都添加一个特殊字符,把奇数长度和偶数长度的字符串都转化成奇数(例如. "121" 加上特殊字符后变成"#1#2#1" ),同时也可在开头再加一个特殊字符,以便于忽略越界问题(如上例"121"变成"$#1#2#1#" 此时开头的特殊字符$和字符串末尾的\0与此串中其他字符都不同,即可忽略越界问题),此时字符串变成
s[]...
分类:
编程语言 时间:
2015-07-06 01:28:25
阅读次数:
155
动态规划(DP)是一种解决复杂问题特别是主问题包含重复子问题的常用算法思想。它将待求解问题分解成若干子问题,先求解子问题,然后再从子问题中得到原问题的解。不同于分治法,子问题常常不是互相独立的。
利用动态规划求解问题的有效性 依赖于问题本身具有的两个重要性质,也就是如果待解决问题具有以下两个性质,就可以考虑使用动态规划求解。
1 最优子结构:问题的最优解包含了其子问题的最优解。
2 重叠子问...
分类:
其他好文 时间:
2015-06-29 22:18:52
阅读次数:
148
垃圾回收要考虑的问题
1、那些内存需要回收?
2、什么时候回收?
3、如何回收?
如何判断对象"已死"?
一、Reference Counting ---- 引用计数法
1、算法思想
给对象添加一个引用计数器,每当有一个地方引用它时,计数器的值就加一;当引用失效时,计数器减一。任何时刻,计数器值为0的对象就是不可能再被使用的。
2、采用这种方式的案例
微软的C...
分类:
其他好文 时间:
2015-06-29 14:59:04
阅读次数:
184
最近在复习数据结构,所以想起了之前做的一个最小生成树算法。用Kruskal算法实现的,结合堆排序可以复习回顾数据结构。现在写出来与大家分享。 最小生成树算法思想:书上说的是在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边....
分类:
编程语言 时间:
2015-06-27 16:08:55
阅读次数:
201
本文引用自泽爷工作室http://www.zeyes.org/study/clang/189.html算法思想:1.在把生成树看成一个集合(开始集合为空,到各个结点的距离当然未知)2.结点与集合之间的权值可以看成结点到集合距离3.将第一个结点加入集合,并初始化集合与其他结点的距离4.搜索集合与结点最...
分类:
编程语言 时间:
2015-06-26 12:48:40
阅读次数:
221
一、算法思想
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。
(1) 分治法的基本思想
分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。
(2)快速排序的...
分类:
编程语言 时间:
2015-06-24 19:06:33
阅读次数:
188
题意:
2台机器,n件任务,每件任务必须先在S1上做,再在S2上做。任务之间先做后做任意。求最早的完工时间。
分析:
这是一个经典问题:2台机器的情况下有多项式算法(Johnson算法),3台或以上的机器是NP-hard的。Johnson算法思想就是贪心,时间复杂度是O(nlogn) 。Johnson算法: (1) 把作业按工序加工时间分成两个子集,第一个集合中在S1上做...
分类:
编程语言 时间:
2015-06-22 16:27:00
阅读次数:
201
八大算法思想分别是:枚举、递推、递归、分治、贪心、试探法、动态迭代和模拟算法思想。1、比较“笨”的枚举算法思想枚举最大的缺点是运算量比较大,解题效率不高。如果题目的规模不是很大,在规定的时间与空间限制内能够求出解,那么最好是采用枚举法,而无须太在意是够还有更快的算法,这样可以使你有更多的时间去解答其...
分类:
编程语言 时间:
2015-06-20 10:33:24
阅读次数:
359
//常用的排序算法#include using namespace std;typedef int ElemType;/*1、插入排序(1)直接插入排序算法算法思想:将等排序列划分为有序与无序两部分,然后再依次将无序部分插入到已经有序的部分,最后就可以形成有序序列。操作步骤如下:1)查找出元素L(i...
分类:
移动开发 时间:
2015-06-15 16:07:50
阅读次数:
110
拿到这个问题,第一反应是利用分治的算法思想, 每次把当前的最大的一块烙饼放到指定位置,这样的思想非常简单,实现也非常容易。但是这只是提供了,问题的一个可行解,看完书中的内容之后发现,题目中要求的是最优化的输出过程,我们的这种方法显然没有考虑到优化!!其实,我觉得就算我看到了这个最优化输出的要求,估计也想不到书中的设计思想的了。过段时间,等自己把书中的思想忘掉之后,再看看能不能想到这种算法思...
分类:
编程语言 时间:
2015-06-11 19:32:40
阅读次数:
122