
数据结构与算法
xingfudage1986
这个作者很懒,什么都没留下…
展开
-
A*寻路 曼哈顿启发式算法
作者: Patrick Lester译者:Panic 2005年3月18日译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为学习人工智能的开始。这篇文章非常转载 2011-10-17 00:40:04 · 1735 阅读 · 0 评论 -
全排列和全组合的问题
#include void swap(int *l, int *r){ int t = *l; *l = *r; *r = t;}//全排列void gen(int *a, int size, int len){ int i,j; if (size == 0){ for (i = 0; i < len; i++){ printf("%d ", (a-len)[i])原创 2011-10-28 16:04:57 · 432 阅读 · 0 评论 -
两个有序的数组中找第N个数
问题描述:Give a divide and conquer algorithm for the following problem:you are given two sorted lists of size m and n, and are allowedunit time access to the ith element of each list. Give an O(lg m转载 2011-10-05 18:38:42 · 1158 阅读 · 0 评论 -
编程之美:分层遍历二叉树
问题定义给定一棵二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。下面是一个例子:输出:12 34 5 67 8节点的定义:1struct Node { 2Node *pLeft;转载 2011-09-29 17:53:41 · 517 阅读 · 0 评论 -
二路归并排序(链式存储)
设单链表结构为 struct ListNode {int data ;ListNode * link ;};下面的程序是以单链表为存储结构, 实现二路归并排序的算法, 要求链表不另外占用存储空间, 排序过程中不移动结点中的元素, 只改各链结点中的指针, 排序后r仍指示结果链表的第一个结点.在初始状态下, 所有待排序记录链接在一个以r为头指针的单链表中.例如,在算法实现时,利用了转载 2011-10-10 20:41:50 · 2983 阅读 · 1 评论 -
多模式匹配--AC自动机算法
首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。如果转载 2011-09-29 19:17:58 · 671 阅读 · 0 评论