![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 71
大胖5566
科学、技术与人文的统一和谐,本人邮箱moodytong@126.com
展开
-
KMP算法的原理及实现
<br /> KMP算法是一种线性时间复杂的字符串匹配算法,它是对BF算法(Brute-Force,最基本的字符串匹配算法的)改进。<br /> 对于给的的原始串S和模式串P,需要从字符串S中找到字符串P出现的位置的索引。<br /><br /> BF算法的时间复杂度O(strlen(S) * strlen(T)),空间复杂度O(1)。<br /> KMP算法的时间复杂度O(strlen(S) + strlen(T)),空间复杂度O(strlen(T))。<br />转载 2011-04-13 14:15:00 · 728 阅读 · 0 评论 -
算法设计与分析课程Part1笔记(1)
所有笔记PDF版本,外加一些习题和基本答案,已经上传至http://ishare.iask.sina.com.cn/f/25611722.html-----------------------------------------------------------------------------------------1. Introduction算法作为计算机科学的一个重要分支,原创 2012-07-25 15:39:11 · 1234 阅读 · 0 评论 -
算法设计与分析课程Part1笔记(6)
6. 哈希表与平衡二叉树6.1 全域散列(UniversalHashing) 根据假设可知,有边为0,那么求碰撞的概率转化为求左边等式等于0的概率,可以证明左边等式是集合中的一个随机元素。可以举例子n=7, x4-y4=2 or3,a4=0,1,2,3,4,5,6时,计算左边的值。 所以可以看到为0的概率为1/n,这样碰撞的概率也是1/n。原创 2012-07-30 10:24:34 · 1093 阅读 · 0 评论 -
算法设计与分析课程Part1笔记(5)
5.1 迪杰斯特拉算法 迪杰斯特拉用来解决单源最短路径问题,该问题的输入是给定的有向图G,边的长度是非负的,给定源节点s;输出是节点s到G中其他节点的最短路径长度。很自然想到利用之前的BFS进行最短路径的计算,但是只有当长度为1的时候,才有效。有一种想法就是将图G中边程度大于1的边进行分解,分解为多条长度为1的边,如果一条边够长,那么这种做法十分麻烦。Dijkstra算法原创 2012-07-29 18:23:46 · 842 阅读 · 0 评论 -
算法设计与分析课程Part1笔记(3)
3. 线性时间下的选择问题和图基本3.1 线性时间下的选择 问题描述:对于包含n个元素的数字A,找出其中的第i小(或者大)的元素(例如n为奇数时,i=(n+1)/2;n为偶数时,i=n/2)。 Random_Selection(array A, length n, oder i): -- if n=1 return A[1] --choose pivot p fr原创 2012-07-27 14:35:10 · 1122 阅读 · 0 评论 -
算法设计与分析课程Part1笔记(2)
2. 主方法(Master Method)2.1 主方法介绍为了更好的计算递归式的时间复杂度,引入了主方法。2.2 主方法的证明 三个参数可知,每次划分时,子问题的个数是原问题的a倍,而大小是原问题的1/b,2.3 简单例子 以Merge Sort为例,每次分为两个子问题,每个子问题是前一个问题size的一半,同时每个子问题解决时间长原创 2012-07-26 15:59:15 · 1318 阅读 · 0 评论 -
数组和广义表
5.1 数组的定义数组:由一组类型相同、下标不同的变量构成。特点:各个元素具有统一类型、下标 具有固定上界和下界、基本操作简单(初始化、销毁、修改、存取)N维数组:n个下标,每个元素受到n个关系约束;一个n维数组可以看成是由若干个n-1维数组成的线性表。5.2 数组的顺序存储计算机的存储结构是一维的,而数组一般是多维的,那么就要进行一维化:事先约定按某种次序将数组元素排成一列序原创 2011-11-18 18:49:40 · 4609 阅读 · 0 评论 -
十月百度,阿里巴巴,迅雷搜狗最新面试七十题(更新至10.17)
十月百度,阿里巴巴,迅雷搜狗最新面试十一题引言 当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热。而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多思想与设计,细细把玩,思考一番亦能有不少收获。 上个月,本博客着重整理九月腾讯,创新工场,淘宝等公司最新面试十三题,此次重点整理百度,阿里巴巴,迅雷和搜索等公司最新的面试题。同上篇一转载 2011-10-30 22:16:17 · 2027 阅读 · 1 评论 -
海量数据处理面试题集锦与Bit-map详解
十七道海量数据处理面试题与Bit-map详解作者:小桥流水,redfox66,July。前言 本博客内曾经整理过有关海量数据处理的10道面试题(十道海量数据处理面试题与十个方法大总结),此次除了重复了之前的10道面试题之后,重新多整理了7道。仅作各位参考,不作它用。 同时,程序员编程艺术系列将重新开始创作,第十一章以后的部分题目来源将取自下文转载 2011-10-30 22:14:36 · 634 阅读 · 0 评论 -
九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)
九月腾讯,创新工场,淘宝等公司最新面试三十题引言 曾记否,去年的10月份也同此刻一样,是找工作的高峰期,本博客便是最初由整理微软等公司面试题而发展而来的。如今,又即将迈入求职高峰期--10月份,而本人也正在找下一份工作中,所以,也不免关注了网上和我个人建的算法群Algorithms1-12群内朋友发布和讨论的最新面试题。特此整理,以飨诸位。至于答案,望诸位共同讨论与思考。转载 2011-10-30 22:13:02 · 1108 阅读 · 0 评论 -
十道海量数据处理面试题与十个方法大总结
海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。有任何问题,欢迎交流、指正。出处:http://blog.csdn.net/v_JULY_v。-------------------------转载 2011-10-30 22:10:37 · 595 阅读 · 0 评论 -
微软公司等数据结构+算法面试100题2010版全部出炉
微软等公司数据结构+算法面试100题2010版首次完整亮相 作者:July、2010年12月6日。更新:现今,这100题的答案已经全部整理出来了,微软面试100题2010年版全部答案集锦:http://blog.csdn.net/v_july_v/article/details/6870251。关于此100道面试题的所有一切转载 2011-10-30 22:08:51 · 497 阅读 · 0 评论 -
最长升序列求解(OJ 1093)
<br />bupt acm oj: 1093<br />最长升序列 Submit: 1370 Accepted:446 Time Limit: 1000MS Memory Limit: 65536KDescription<br />给出一个序列,求出此序列的最长升序列。 <br />Input<br />第一行有一个正整数T(T < 10),表示测试数据的数量。<br />每组测试数据一行,先给出一个正整数n(n < 300),接下来是n个正整数组成的序列,求此序列的最长升序列。<br />Outp原创 2011-04-15 16:41:00 · 1442 阅读 · 0 评论 -
杨辉三角之c++队列实现
<br />#include<stdlib.h>#include<stdio.h>#include<time.h>#include<iostream>#include<string>#include<vector>#include<Queue>using namespace std;int main(){ int n; cout<<"Input the number:"<<endl; cin>>n; int i=1;原创 2011-04-15 13:02:00 · 4920 阅读 · 0 评论 -
算法设计与分析课程Part1笔记(4)
4. 图搜索及其连通性对于图来说,考虑的几个比较重要的因素就是连通性和路径;连通性关注的有强连通分量和特殊结构(例如web中的蝴蝶结构),路径关注的有两个节点间的最短路径和任意节点间的所有简单路径。连通性和路径其实都是关于图中的搜索,通过图搜索希望能够找到目标节点,并且每个节点尽量访问一次(或者说复杂度是线性的)。4.1 BFS和DFS广度优先和深度优先是非常熟悉和基础的两个图搜索原创 2012-07-28 09:33:56 · 922 阅读 · 0 评论