数据结构与算法
文章平均质量分 74
景语
景语
展开
-
堆栈的应用--计算机对运算表达式编译
在源程序的表达式中,常出现这样的形式:A*B+C/D,这种形式便于我们理解,但是由于加入了运算符优先级,运算的最终顺序不是按照从左至右,因而不便于计算机的理解。这个时候运用堆栈可以较好地完成这个任务。在编译系统中对一个中缀表达式进行计算前,总是先将中缀表达式转换为后缀表达式。例如:A*B+C/D --> AB*CD+/在堆栈里面,变换方法为:1、首先建立两个栈,一个为操作数原创 2012-04-17 20:11:44 · 1268 阅读 · 0 评论 -
算法分析的基础知识
《数据结构与算法分析--C语言描述》第二章笔记主要记录算法分析的一些理论基础,包括数学定义以及时间复杂度分析法等。数学知识关于时间复杂度的定义(目的在于建立一个相对的级别关系):定义一:Θ(g(n)) = { f(n) | 如果存在正常数c1、c2和正整数n0,使得当n>=n0时,0定义二:Ο(g(n)) = { f(n) | 如果存在正常数c和正整数n0,使得当n原创 2012-04-24 15:24:30 · 943 阅读 · 0 评论 -
在链表中使用头结点与尾指针
1 头结点首先,不要被以下三个词组弄混了:链表头:数据内容为第一个元素的结点。头指针:指向头结点元素的指针。头结点:数据内容无效,其指针是头指针。一句话描述为:头指针是指向头结点的指针,头结点是指向链表头的结点。对于一个链表来说,头指针和是一定存在的,是访问链表的入口,如果没有头指针则无法对其进行访问;链表头对于非空表来说是一定存在的,非空表则不存在。注意到,如原创 2012-05-17 16:53:08 · 31940 阅读 · 6 评论 -
一来就给LeetCode跪了
之前的OJ战场在 HackerRank ,今天终于禁不住铺天盖地的诱惑,加入 LeetCode 大军按照学编程就从“Hello world!”开始的尿性,刷OJ当然也从 1 号题出发Aha~~~!看起来是非常简单的问题呢!先来个暴力for for法!什么?!不行?!这我当然知道!玩玩儿你!如果不对数组进行排序,那么对于一般的方原创 2015-03-24 20:28:44 · 1340 阅读 · 0 评论 -
数据挖掘十大算法——Naive Bayes
简介Naive和BayesNaive:假定向量中的所有特征是相互独立的 Bayes:面向的问题NB主要用于解决有监督分类问题。相比于其他模型,其具备简单(不需要复杂的迭代式参数估计,由此方便处理大数据)、可解释性强(生成模型)、效果佳的特点。目标针对二分类问题,利用训练集数据学习一个判断阈值α,对于新来的数据做判定,大于α的数据属于正类,小于α的数据属于负类。有监督分类中存在两大流派 diagno原创 2015-08-12 09:21:29 · 2496 阅读 · 0 评论 -
机器学习中的决策树及其演化算法
1 树形算法家族族谱1.1 决策树采用divide-and-conquer算法思想,递归构建特征选择——决策树生成——树剪枝互斥与完备:每个训练样本有且仅有一条路径规则最终可能训练出多个,可能一个没有;从所有可能决策树中选择最优是NP问题,因此现实中常用启发式(heuristic)方法Loss Function:正则化的极大似然函数树形表征 特征空间表征 1.1.1 ID3算法采用信原创 2015-09-12 17:00:58 · 3158 阅读 · 0 评论