
算法
文章平均质量分 81
urtheappleinmyeye
福州大学通信本科,南京邮电大学通信硕士,爱好互联网,算法,Android开发,机器挖掘/深度学习,嵌入式开发,J2EE开发,移动通信,欢迎大家一起交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详解Floyd算法求解最短路径
前面我们已经知道了用Dijkstra算法求解最短路径了,现在我们来看看另一种常见的求解最短路径的方法。 正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B原创 2014-02-24 14:06:51 · 477 阅读 · 0 评论 -
详解KMP匹配算法
KMP字符串模式匹配详解KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos ){/* 若串 S 中从第pos(S原创 2014-02-20 16:50:14 · 395 阅读 · 0 评论 -
详解线索二叉树
线索二叉树概念1.定义 n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。 这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。原创 2014-02-20 16:45:09 · 596 阅读 · 0 评论 -
二十三种设计模式通俗解读(纯比喻,如有不当,请指正哈)
1、FACTORY 追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户原创 2014-03-02 16:15:47 · 412 阅读 · 0 评论 -
囚徒活命问题(博弈论)
5个囚犯,分别按1-5号在装有100颗绿豆的麻袋抓绿豆,规定每人至少抓一颗,而抓得最多和最少的人将被处死,而且,他们之间不能交流,但在抓的时候,可以摸出剩下的豆子数。问他们中谁的存活几率最大?提示:1,他们都是很聪明的人 2,他们的原则是先求保命,再去多杀人 3,100颗不必都分完 4,若有重复的情况,则也算最大或最小,一并处死 5原创 2014-03-02 16:45:55 · 1145 阅读 · 0 评论 -
面试笔试算法题总结
1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \4 8 12 16 转换成双向链表4=6=8=10=12=14=16。 首先我们定义的二元查找树 节点的数据结构如下: struct BSTree原创 2014-03-02 16:39:14 · 1101 阅读 · 0 评论 -
C++实现基本的排序算法(详细解析以及源代码实现)
排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将 给出详细的说明。 这里将按照算法的复杂度,从简单到难来分析算法。 一、简单排序算法 由于程序比较简单,所以没有加什么注释。所有的程序都给出了完整的运行代码,并在我的VC6.0环境 下运行通过。原创 2014-02-17 13:01:44 · 428 阅读 · 0 评论 -
大白话讲解模拟退火算法,浅显易懂
模拟退火这种 高深的算法理解起来是很难的,我也不是特别懂,现在贴一篇我看过最好的关于模拟退火的文章,大白话跟你讲懂模拟退火的算法。原地址如下:http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜原创 2014-02-17 09:58:31 · 904 阅读 · 0 评论 -
从B 树、B+ 树、B* 树谈到R 树(转载)
第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自原创 2014-02-26 21:12:26 · 366 阅读 · 0 评论 -
数据结构中的各种树浅谈
数据结构中为了存储和查找的方便,用各种树结构来存储文件,本章就浅谈一下各种树的表示方法、特点及各自的用途,本章设计的树结构包括:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。1、二叉查找树(二叉排序树) (图a)二叉查找树是一种动态查找表(图a),具有这些性质:原创 2014-02-26 21:14:34 · 293 阅读 · 0 评论 -
五个强盗分金币的问题分析(博弈论)
话说五个强盗抢得100枚金币,他们决定: 1、抽签决定各人的号码(1,2,3,4,5);2、由1号提出分配方案,然后5人表决,当且仅当超过半数同意方案被通过,否则他将被扔入大海喂鲨鱼;3、1号死后,由2号提方案,4人表决,当且仅当超过半数同意时案通过,否则2号同样被扔入大海;4、依次类推……假定“每个海盗都是很聪明的人,都能很理智的判断得失,从而做出选择”,那么“第一个海盗提出怎样的分配方原创 2014-02-24 14:46:55 · 8662 阅读 · 2 评论 -
详解KMP匹配算法中的next数组
我们在一个母字符串中查找一个子字符串有很多方法。KMP是一种最常见的改进算法,它可以在匹配过程中失配的情况下,有效地多往后面跳几个字符,加快匹配速度。当然我们可以看到这个算法针对的是子串有对称属性,如果有对称属性,那么就需要向前查找是否有可以再次匹配的内容。 在KMP算法中有个数组,叫做前缀数组,也有的叫next数组,每一个子串有一个固定的next数组,它记录着字符串匹配过原创 2014-02-24 15:27:50 · 581 阅读 · 0 评论 -
字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法一网打尽(转载)
字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法一网打尽 本文内容框架:§1 Boyer-Moore算法§2 Horspool算法§3 Sunday算法§4 KMP算算法§5 KR算法§6 AC自动机§7 小结 §1 Boyer-Moore(BM)算法 Boyer-Mo原创 2014-02-20 16:58:57 · 400 阅读 · 0 评论