高速排序因为排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被採用,再加上高速排序思想----分治法也确实有用,因此非常多软件公司的笔试面试,包含像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也经常出现高速排序的身影。总的说来,要直接默写出高速排序...
分类:
编程语言 时间:
2015-02-28 20:05:30
阅读次数:
203
之前有篇文章([算法系列之二十]字典树(Trie))我们详细的介绍了字典树。有了这些基础我们就能更好的理解后缀树了。一 引言 模式匹配问题给定一个文本text[0…n-1], 和一个模式串 pattern[0…m-1],写一个函数 search(char pattern[], char text[]), 打印出pattern在text中出现的所有位置(n > m)。这个问题已经有两个经典的算法:...
分类:
编程语言 时间:
2015-02-27 20:16:41
阅读次数:
192
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 自10月初编写算法系列的博客以来,陆陆续续以来写了几十篇。按照计划,还有三个部分的内容没有介绍,主要是(Dijkstra算法、二叉平衡树、红黑树)。这部分会在后面的博客补充完整。这里主要是做一个总...
分类:
编程语言 时间:
2015-02-26 14:39:46
阅读次数:
213
题目描述给定一个包含一系列字符的集合T和字符串S,请在字符串S中找到一个最小的窗口,这个窗口中必须包含T中的所有字符。
例如,
S = “ADOBECODEBANC”
T = “ABC”最小窗口是“BANC”分析这是一个有趣的问题,这个有趣的问题有多种方法来解决,最好的方法是非常简单,美丽的。
在这篇文章中,我首先说明了一个方法,是我第一次遇见这个问题时想到的。我的第一个方法有点复杂,同时也...
分类:
编程语言 时间:
2015-02-24 12:37:07
阅读次数:
203
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。二 优点利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。三 性质(1)根节点不包含字符,除根节点外每一个节点都只包含一个字符;
(2)从根节点到某一节点,路径上经过的字符连接起来,为...
分类:
编程语言 时间:
2015-02-21 23:28:58
阅读次数:
589
高速排序因为排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被採用,再加上高速排序思想----分治法也确实有用,因此非常多软件公司的笔试面试,包含像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也经常出现高速排序的身影。总的说来,要直接默写出高速排序...
分类:
编程语言 时间:
2015-02-19 15:06:05
阅读次数:
199
有两个字符串S1和S2,求一个最长公共子串,即求字符串S3,它们同时是S1和S2的子串,且要求它们的长度最长,并确定这个长度。这个问题我们称之为最长公共子序列问题。
与求最长递增子序列一样,我们首先将原问题分割成一些子问题,我们用dp[i][j]表示S1中前i个字符和S2中前j个字符分别组成的两个前缀字符串的最长公共子串长度。显然的,当i,j较小时我们可以直接给出答案,如dp...
分类:
编程语言 时间:
2015-02-12 16:22:43
阅读次数:
178
冒泡排序是很easy理解和实现,,以从小到大排序举例:设数组长度为N。1.比較相邻的前后二个数据,假设前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,假设N不为0就反复前面二步,否则排序完毕...
分类:
编程语言 时间:
2015-02-11 10:44:52
阅读次数:
127
所谓的BitMap就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了bit为单位来存储数据,因此在存储空间方面,可以大大节省。二:基本思想我们用一个具体的例子来讲解,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用BitMap的方法来达到排序的目的。要表示8个数,我们就只需要8个bit(1Bytes)。...
分类:
编程语言 时间:
2015-02-07 17:30:08
阅读次数:
3307
取自 1976 Ullmann Part2Naive alogrithm for Subgraph Isomorphism.1. 如何判定子图同构。 有个Gα和Gβ, Gα有pa个点,qa条边,Gβ有pb个点,qb条边。A是Gα的邻接矩阵,相应的B是Gβ的邻接矩阵。那么如何判断同构呢。设A是子图,....
分类:
编程语言 时间:
2015-02-07 00:28:18
阅读次数:
263