1.枚举法的基本思想:根据实际问题设计多重循环,一一枚举所有可能的状态,并用问题给定的约束条件检验哪些状态是需要的,哪些状态是不需要的。能使命题成立的状态,即为其解。虽然枚举法本质上属于搜索策略,但是它与后面讲的回溯法或宽度优先搜索有所不同。2.枚举条件:①可预先确定每个状态的元素个数n。如百钱买百...
分类:
其他好文 时间:
2014-10-05 02:03:37
阅读次数:
248
一 基本概念分治法,顾名思义分而治之的意思,就是把一个复杂的问题分成两个或很多其它的同样或相似的子问题,再把子问题分成更小的子问题……直到最后子问题能够简单的直接求解,原问题的解即子问题的解的合并。二基本思想及策略分治法的设计思想是:将一个难以直接解决的大问题,切割成一些规模较小的同样问题,以便各个...
分类:
其他好文 时间:
2014-10-04 22:49:47
阅读次数:
343
理论:Prim:基本思想:假设G=(V,E)是连通的,TE是G上最小生成树中边的集合。算法从U={u0}(u0∈V)、TE={}开始。重复执行下列操作:在所有u∈U,v∈V-U的边(u,v)∈E中找一条权值最小的边(u0,v0)并入集合TE中,同时v0并入U,直到V=U为止。此时,TE中必有n-1条...
分类:
其他好文 时间:
2014-10-04 20:02:37
阅读次数:
503
一,深度优先搜索
基本思想:
以图中某个顶点Vi为出发点,首先访问出发点Vi,然后任选一个Vi的未访问过的临界点Vj,以Vj为新的出发点继续进行深度优先搜索,依此类推,直至图中所有顶点都被访问过。
深度优先搜索可以看成一个递归过程。
具体过程:
首先选定结点v0为出发点,访问V0,然后从V0的邻接点V1,V3,V5,任选一个访问,此处我们访问V1...
分类:
其他好文 时间:
2014-10-04 19:29:07
阅读次数:
192
递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到可以直接求解,也就是说到了递推的出口,这样原问题就有递推得解。 关键要抓住的是: (1)递归出口 (2)地推逐步向出口逼近 样例: example: 求5的阶乘。。 例如以下: Jav.....
分类:
编程语言 时间:
2014-10-03 21:41:25
阅读次数:
177
本节主要介绍键值对表的基本实现方法。链表法一种方法就是用链表进行实现。这样的方法的基本思想就是用链表储存键值对。当须要寻找一个值时,扫描整个链表,假设有匹配的键,就返回相应的值。当须要插入一个值时,扫描整个链表,假设可以找到匹配的键,就覆盖相应的值,假设没有找到,就在链表的头部添加一个新的键值对。这...
分类:
其他好文 时间:
2014-10-01 23:35:41
阅读次数:
269
递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到可以直接求解,也就是说到了递推的出口,这样原问题就有递推得解。 关键要抓住的是: (1)递归出口 (2)地推逐步向出口逼近 样例: example: 求5的阶乘。。 例如以下: Jav.....
分类:
编程语言 时间:
2014-10-01 15:16:11
阅读次数:
197
#include
/* 插入排序
基本思想:将记录插入到已排序好的有序表中
特点:一种稳定的排序方法,时间复杂度O(n^2)
*/
void InsertSort(int array[],int len){
int i,j;
int temp;...
分类:
其他好文 时间:
2014-09-30 23:23:10
阅读次数:
196
归并排序基本思想:将两个或两个以上的有序子序列“归并”为一个有序子序列。在内部排序中,通常采用的是2-路归并排序,即将两个位置相邻的有序子序列“归并”为一个有序序列。类似于快排,其使用的也是分治的策略。二路归并排序基本思想:将有n个记录的原始序列看做n个有序子..
分类:
其他好文 时间:
2014-09-30 04:38:12
阅读次数:
191
引用网上的一些介绍:查找整序列的第k大值往往采用快速查找法。然而此方法会破坏原序列,并且需要O(n)的时间复杂度。抑或使用二叉平衡树进行维护,此方法每次查找时间复杂度仅为O(logn)。然而此方法丢失了原序列的顺序信息,无法查找出某区间内的第k大值。划分树的基本思想就是对于某个区间,把它划分成两个子...
分类:
其他好文 时间:
2014-09-29 22:54:41
阅读次数:
226