数据结构与算法分析
caolaosanahnu
这个作者很懒,什么都没留下…
展开
-
二叉树的前中后序遍历
http://eriol.iteye.com/blog/866459 题目:给出二叉树的前序遍历和中序遍历,求后序遍历。背景知识:前序、中序和后序遍历指的是父节点的遍历顺序。例如前序为父节点->左子树->右子树,中序为左子树->父节点->右子树,后序为左子树->右子树->父节点解题思路:1. 前序的第一个元素为根节点2. 在中序以根节点划分为左右两个子树原创 2012-10-16 13:54:55 · 570 阅读 · 0 评论 -
五大常用算法之四:回溯法
http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741376.html1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优转载 2013-07-24 17:11:57 · 725 阅读 · 0 评论 -
五大常用算法之五:分支限界法
http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741378.html一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某转载 2013-07-24 17:13:20 · 840 阅读 · 0 评论 -
关联挖掘算法Apriori和FP-Tree学习
http://blog.csdn.net/sealyao/article/details/6460578Apriori算法和FPTree算法都是数据挖掘中的关联规则挖掘算法,处理的都是最简单的单层单维布尔关联规则。Apriori算法Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。是基于这样的事实:算法使用频繁项集性质的先验知识。Apriori使用一种称作逐层搜索的迭代转载 2013-08-02 14:37:14 · 1052 阅读 · 0 评论 -
K-means聚类算法
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html K-means也是聚类算法中最简单的一种了,但是里面包含的思想却是不一般。最早我使用并实现这个算法是在学习韩爷爷那本数据挖掘的书中,那本书比较注重应用。看了Andrew Ng的这个讲义后才有些明白K-means后面包含的EM思想。 聚类属于无监督学习,转载 2013-08-02 14:51:47 · 803 阅读 · 0 评论 -
算法,求1亿个数的中位数
http://bbs.csdn.net/topics/310150772可以借鉴一下以下方法的:有1亿个浮点数,请找出其中最大的10000个。提示:假设每个浮点数占4个字节,1亿个浮点数就要站到相当大的空间,因此不能一次将全部读入内存进行排序。 ~~~~~~~~~~~~~ 既然不可以一次读入内存, 那可以这么试试: 方法1: 读出100w个数据, 找出最大转载 2013-10-11 14:36:17 · 3631 阅读 · 0 评论 -
程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现) .
http://blog.csdn.net/pzhtpf/article/details/75602945.冒泡排序(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。(2)实例:(3)用java实现 [转载 2013-10-16 20:30:53 · 761 阅读 · 0 评论 -
java算法----0至9这十个数组成两个三位数和一个四位数
http://yangjianzhouctgu.iteye.com/blog/1884313Java代码 package com.zhonghaiwangluokeji.interview; /** * 0-9这十个数,组合成两个三位数和一个四位数 * 求出满足条件:两个三位数相加等于那个四位数 * 的所有这些数 * @author yangj转载 2013-11-01 18:04:51 · 2783 阅读 · 0 评论 -
各种数据结构优缺点分析
http://shellblog.sinaapp.com/?p=52数组优点:插入块如果知道坐标可以快速去地存取缺点:查找慢,删除慢,大小固定有序数组优点:比无序数组查找快缺点:删除和插入慢,大小固定栈优点:提供后进先出的存取方式缺点:存取其他项很慢队列优点:提供先进先出的存取方式缺点:存取其他项都很慢链表优点:插入快,删除快缺点:查找慢转载 2014-02-21 11:35:15 · 11813 阅读 · 0 评论 -
五大常用算法之一:分治算法
http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的转载 2013-07-24 16:25:37 · 672 阅读 · 0 评论 -
Message-Digest Algorithm 5
http://zh.wikipedia.org/wiki/MD5MD5即Message-Digest Algorithm 5(消息摘要算法第五版)的简称,是当前计算机领域用于确保信息传输完整一致而广泛使用的雜湊算法之一(又译哈希算法、摘要算法等),主流编程语言普遍已有MD5的实现。将数据(如一段文字)运算变为另一固定长度值,是雜湊算法的基础原理,MD5的前身有MD2、MD3和MD4。转载 2013-07-24 10:56:20 · 1062 阅读 · 0 评论 -
后缀表达式计算
http://www.cppblog.com/deep2/archive/2008/10/25/65021.aspx // test20.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeiostream>#includestack>#incl原创 2012-10-16 18:01:59 · 1341 阅读 · 0 评论 -
几个经典算法的概念
http://eriol.iteye.com/blog/1076296动态规划(Dynamic Programming) 一、动态规划的基本思想: 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从原创 2012-10-16 13:57:35 · 576 阅读 · 0 评论 -
简单的整数计算器
http://dearymz.blog.163.com/blog/static/2056574200612393970///简单的整数计算器----堆栈的应用作者:秒大刀完成日期:2004-10-07这是一个将中序表达式变成后序表达式,并按照后序表达式进行整数四则运算是的程序mystak.h 计算器中的一个特殊堆栈,其中push()函数可以保证中序表达式原创 2012-10-16 14:06:50 · 2009 阅读 · 0 评论 -
把中缀表达式转化为后缀表达式
http://www.cppblog.com/yearner/archive/2006/10/31/14425.html 算法的用途: 我的目的很简单,做一个24点牌的Flash小游戏,接受用户输入的表达式,然后计算结果。貌似在AS中没有可以直接计算字符串表达式的函数,所以只好自己写了。要计算这个表达式(带括号)首先得把括号去掉,括号真的是挺麻烦的一个东东,所以还得选后缀表达式-_原创 2012-10-16 14:45:41 · 629 阅读 · 0 评论 -
Pseudorandom number generator
http://en.wikipedia.org/wiki/Pseudorandom_number_generatorA pseudorandom number generator (PRNG), also known as adeterministic random bit generator (DRBG),[1] is analgorithm for generating a seq转载 2013-07-24 10:52:27 · 3570 阅读 · 0 评论 -
Bloom filter
http://en.wikipedia.org/wiki/Bloom_filterAn empty Bloom filter is a bit array of m bits, all set to 0. There must also be k differenthash functions defined, each of whichmaps or hashes some转载 2013-07-24 11:04:17 · 655 阅读 · 0 评论 -
五大常用算法之二:动态规划算法
http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741374.html 一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是转载 2013-07-24 17:05:35 · 577 阅读 · 0 评论 -
五大常用算法之三:贪心算法
http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741375.html贪心算法一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必转载 2013-07-24 17:09:04 · 684 阅读 · 0 评论 -
大话数据结构之算法 时间复杂度
http://www.cnblogs.com/danyingjie/archive/2011/11/17/2252466.html时间复杂度用O()来体现,我们称之为大O记法。记做:T(n)=O(f(n))一般情况下随着n的增大,T(n)增长最慢的算法为最优算法。O(1)叫常数阶 O(n)叫线性阶 O(n2)叫平方阶 推倒大O阶1. 用常数1取代运行时间中转载 2014-02-21 13:27:50 · 1001 阅读 · 0 评论