提示:以下内容不适合零基础人员,仅供笔者复习之用。 概要: 串是由零个或多个字符组成的有限序列,又名叫字符串。 一、串的比较     给定两个串,s = "a1a2.....an",t="b1b2....bm",当满足以下条件之一时,s<t。 n<m,且ai = bi(i=1,2,.....,n)。例如,s="hap",t="happy",就有s<t。 存在某个k<=min(m,n),使得ai = bi(i=1,2,.....,k-1),ak < bk。例…

2017年4月20日 0条评论 9点热度 阅读全文

一、算法的时间复杂度定义     在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度。记作:T(n)=O(f(n))。它表示随问题n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中,f(n)是问题规模n的某个函数。     这样用大写O()来体现算法时间复杂度的记法,我们称之为大0记法。 二、推导大…

2017年3月27日 0条评论 5点热度 阅读全文

关键字:局部最优 引言      贪婪是一种人类本能的东西,贪心算法也是最接近人类日常思维的一种解题策略。比如,找零钱问题:      假设提供了数目不限的面值为25美分、10美分、5美分、1美分的硬币。一个小孩买了价值少于1美元的糖,并将1美元交给售货员,售货员希望用最少的硬币数找钱给小孩。假设小孩买了33美分的糖果。(需要找钱67美分)       找钱的方法:25+25+10+5+…

2016年11月10日 0条评论 6点热度 阅读全文

关键字:局部最优 引言      贪婪是一种人类本能的东西,贪心算法也是最接近人类日常思维的一种解题策略。比如,找零钱问题:      假设提供了数目不限的面值为25美分、10美分、5美分、1美分的硬币。一个小孩买了价值少于1美元的糖,并将1美元交给售货员,售货员希望用最少的硬币数找钱给小孩。假设小孩买了33美分的糖果。(需要找钱67美分)       找钱的方法:25+25+10+5+…

2016年11月10日 0条评论 2点热度 阅读全文

前言 在这里,如果大家对图或者数据结构还不太熟悉,想找一个动态的生成过程来参考,这是一个不错的网站. 知识框架 图的定义 在线性结构中,数据元素之间满足唯一的线性关系,每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继; 在树形结构中,数据元素之间有着明显的层次关系,并且每个数据元素只与上一层中的一个元素(双亲节点)及下一层的多个元素(孩子节点)相关; 而在图形结构中,节点之间的关系是任意的,图中任意两个数据元素之间都有可能相关。 图G由两个集合V(顶点Vertex)和E(边Edge)组成,定义为G…

2016年10月31日 0条评论 8点热度 阅读全文

在上一个专题中,我们在谈论二叉查找树的效率的时候。不同结构的二叉查找树,查找效率有很大的不同(单支树结构的查找效率退化成了顺序查找)。如何解决这个问题呢?关键在于如何最大限度的减小树的深度。正是基于这个想法,平衡二叉树出现了。   平衡二叉树的定义 (AVL—— 发明者为Adel'son-Vel'skii 和 Landis)   平衡二叉查找树,又称 AVL树。 它除了具备二叉查找树的基本特征之外,还具有一个非常重要的特点:它 的左子树和右子树都是平衡二叉…

2014年11月7日 0条评论 2点热度 阅读全文