合并排序

合并排序据说也是32个经典算法之一。 三个经典排序:快速排序、堆排序、合并排序,时间复杂度都是O(nlgn),但还是有很大区别的。 可以参考这个:快排、堆排、并排 合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用...

2015-04-04 09:46:22

阅读数 356

评论数 0

堆排序

32个经典算法之一。 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。 PS:树是图的子集,堆是树的一种形态。 (1)用大根堆排序的基本思想: ① 先将初始...

2015-04-03 17:41:49

阅读数 332

评论数 0

Kruskal算法

求加权连通图的最小生成树的算法。和Prim算法对应,经典算法。 算法步骤: 假设 WN=(V,{E}) 是一个含有 n 个顶点的连通网,则按照克鲁斯卡尔算法构造最小生成树的过程为:先构造一个只含 n 个顶点,而边集为空的子图,若将该子图中各个顶点看成是各棵树上的根结点,则它是一个含有 n 棵树的一...

2015-04-02 22:22:43

阅读数 224

评论数 0

Best-First-Search算法

缩写起来是跟广度优先搜索一样的BFS,实际上不同。此BFS按照类似Dijkstra的流程运行,不同的是它能够评估任意结点到目标点的代价。与选择离初始结点最近的结点不同的是,它选择离目标最近的结点。BFS不能保证找到一条最短路径。然而,它比Dijkstra算法快的多,因为它用了一个启发式函数(heu...

2015-04-02 16:03:20

阅读数 5001

评论数 0

Dijkstra算法

经典不解释。 Dijkstra算法从物体所在的初始点开始,访问图中的结点。它迭代检查待检查结点集中的结点,并把和该结点最靠近的尚未检查的结点加入待检查结点集。该结点集从初始结点向外扩展,直到到达目标结点。Dijkstra算法保证能找到一条从初始点到目标点的最短路径,只要所有的边都有一个非负的代价...

2015-04-02 15:47:09

阅读数 314

评论数 0

A*搜索

又是最重要的32个算法之一。是一种静态路网中求解最短路最有效的直接搜索方法。后面还有更多改进的算法。

2015-04-01 20:53:47

阅读数 302

评论数 0

集束搜索

看计算机科学中最重要的32个算法,其中有个是集束搜索(又名定向搜索,Beam Search)——最佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现前m个最符合条件的节点,m是固定数字——集束的宽度。 泛泛的介绍,不是很能理解清楚,于是有百度又go...

2015-04-01 19:18:25

阅读数 1761

评论数 0

Struts2 + Spring + Hibernate 入门 2

继上一节《Struts2 + Spring + Hibernate 入门1》了解SSH的使用领域和意义后,接下来搭建一个SSH框架项目来观察各个部件的运行原理。 一、搞个helloworld 推荐用eclipse加插件方式来解决,可以参考这个例子:Eclipse搭建SSH(Struts2...

2015-03-31 19:45:40

阅读数 277

评论数 0

Struts2 + Spring + Hibernate 入门 1

用工具之前先了解工具,SSH不是一个框架的三部分,而是三个不同框架集成使用,它们既可以单独使用,也可以与其他工具进行搭配,三者之间比较好的遵循了设计模式里的“高内聚低耦合”原则,学习和使用比较方便,尤其是利于快速开发web应用程序,构建灵活、易于扩展,目前比较流行。

2015-03-31 17:16:11

阅读数 337

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭