数据结构与算法
coloriy
这个作者很懒,什么都没留下…
展开
-
开源互联网爬虫,蜘蛛,数据采集器,网页解析器的汇总
互联网爬虫,蜘蛛,数据采集器,网页解析器的汇总。转载自:影音视频技术空间PythonScrapy- 一种高效的屏幕,网页数据采集框架。 django-dynamic-scraper- 基于Scrapy内核由django Web框架开发的爬虫。 Scrapy-Redis- 基于Scrapy内核采用Redis组件的爬虫。 scrapy-cluster- 基于Scrapy内核...转载 2020-02-20 13:09:15 · 659 阅读 · 0 评论 -
Nxn 矩阵旋转90度问题
作者:Hawstein出处:http://hawstein.com/posts/1.6.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。题目原文:Given an image represented by an NxN matrix, where转载 2015-07-18 22:23:10 · 996 阅读 · 0 评论 -
将M*N的矩阵旋转90度
请用最少的额外空间将一个M*N的矩阵旋转90度,写出算法描述和类c语言程序。(这是一道阿里巴巴的笔试编程题目)[cpp] view plaincopyprint?"font-size:14px">#include using namespace std; const int M = 5; const int N = 3;转载 2015-07-18 22:25:53 · 1196 阅读 · 0 评论 -
查找主串中是否还有子串,如果有则返回匹配的第一个位置
题目:查找主串中是否还有子串,如果有则返回匹配的第一个位置,否则返回-1[cpp] view plaincopyprint?#include #include int Index(char *origine, char *target) { if (origine ==NULL||tar转载 2015-07-18 22:29:16 · 1000 阅读 · 0 评论 -
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
使用VisualStudio 编译链接中可能出现如下错误:LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt网上有如下解决方法:1. disable incremental linkingProject Properties -> Configu转载 2015-08-12 18:09:51 · 701 阅读 · 0 评论 -
数据结构——堆
简介本文简要介绍数据结构 堆 的概念并提供了实现源码: CHeapTree类。CHeapTree类的实现是基于一个自动增长的数组。 什么是堆堆是一种特殊的二叉完全树。堆的一个主要特点是它以一定的偏序(a partial order)来保存所有节点[译者注:此处的偏序是指不完全的排序,堆只需要满足父节点大于两个子节点,而子节点之间没有要求]。作为一颗完全树,一层中的节点是从左到右填满转载 2015-08-20 10:47:47 · 454 阅读 · 0 评论 -
B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,转载 2015-08-20 12:51:00 · 606 阅读 · 0 评论 -
如何用栈实现递归与非递归的转换(一)三种遍历树的算法
递归与非递归转换的基础知识是能够正确理解三种树的遍历方法:前序,中序和后序,第一篇就是关于这三种遍历方法的递归和非递归算法。如何用栈实现递归与非递归的转换(一)三种遍历树的算法一.为什么要学习递归与非递归的转换的实现方法? 1)并不是每一门语言都支持递归的. 2)有助于理解递归的本质. 3)有助于理解栈,树等数据结构.二.三种遍历树的递归和非递归算法转载 2015-09-07 13:19:08 · 2025 阅读 · 0 评论 -
红黑树(一)之 原理和算法详细介绍
红黑树(一)之 原理和算法详细介绍 概要目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 作者:Sky Wang 于 2013-08-08转载 2015-09-15 14:17:08 · 606 阅读 · 0 评论 -
十大算法
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策转载 2015-12-04 11:11:20 · 757 阅读 · 0 评论 -
协方差的意义和计算公式
学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,1转载 2017-06-16 15:04:19 · 468 阅读 · 0 评论 -
从上往下打印出二叉树的每个结点
题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印,例如 8 6 105 7 9 11依次打印:8,6,10,5,7,9,11理解:层次遍历二叉树,借助队列,先将根入队列,根出列,打印根的值,并把根的左孩子和右孩子入队列,再出列,打印,入列(根的左孩子的 左孩子和右孩子),.......二叉转载 2017-10-19 13:40:36 · 400 阅读 · 0 评论 -
统计一个数字在排序数组中出现的次数
题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4.思路:用二分查找,分别找出第一个3,和最后一个3的位置,然后计算个数。时间复杂度O(logn)代码:[cpp] view plain copy#include "std转载 2017-10-19 13:46:31 · 547 阅读 · 0 评论 -
几个常见的压缩算法
(一) 字典算法字典算法是最为简单的压缩算法之一。它是把文本中出现频率比较多的单词或词汇组合做成一个对应的字典列表,并用特殊代码来表示这个单词或词汇。例如:有字典列表:00=Chinese01=People02=China源文本:I am a Chinese people,I am from China 压缩后的编码为:I am a 00 01,I am from 02。压转载 2015-08-11 14:07:55 · 2310 阅读 · 0 评论 -
字符串压缩的一些算法
应用中,经常需要将字符串压缩成一个整数,即字符串散列。比如下面这些问题:(摘自JULY的博客 http://blog.csdn.net/v_july_v/ )(1)搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。请找出最热门的10个检索串。(2)有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回转载 2015-08-11 13:57:42 · 1028 阅读 · 0 评论 -
判断二进制数中的1有奇数个还是偶数个
判断(32位)整数的二进制表示中的1有奇数个还是偶数个最直接的思路就是求二进制数中1的个数,然后确定是偶数还是奇数。代码如下:[cpp] view plaincopy// true为x二进制表示中含有奇数个1,false为偶数个1 bool OddOnes(int x) { int cnt = 0;转载 2015-02-06 14:43:15 · 5642 阅读 · 0 评论 -
希尔排序算法
插入排序的算法复杂度为O(n2),但如果序列为正序可提高到O(n),而且直接插入排序算法比较简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描述希尔排序:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入排序,使最终转载 2015-07-28 10:12:58 · 402 阅读 · 0 评论 -
求两个整数的平均值
求两个整数的平均值这个问题相信大家都想过,大家肯定会很快的写出以下的算法:01public static int mean(int a, int b){02 return (a + b) / 2;03}04转载 2015-08-24 12:34:53 · 1596 阅读 · 0 评论 -
希尔排序
本章介绍排序算法中的希尔排序。内容包括:1. 希尔排序介绍2. 希尔排序图文说明3. 希尔排序的时间复杂度和稳定性4. 希尔排序实现4.1 希尔排序C实现4.2 希尔排序C++实现4.3 希尔排序Java实现转载请注明出处:http://www.cnblogs.com/skywang12345/p/3597597.html更多内容:数据结构与算法系列转载 2015-07-28 10:36:49 · 690 阅读 · 0 评论 -
数据结构之-堆
堆常用来实现优先队列,在这种队列中,待删除的元素为优先级最高(最低)的那个。在任何时候,任意优先元素都是可以插入到队列中去的,是计算机科学中一类特殊的数据结构的统称一、堆的定义最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。注意:堆中任一转载 2015-08-24 11:44:12 · 397 阅读 · 0 评论 -
什么是回归分析
【编者按】回归分析是建模和分析数据的重要工具。本文解释了回归分析的内涵及其优势,重点总结了应该掌握的线性回归、逻辑回归、多项式回归、逐步回归、岭回归、套索回归、ElasticNet回归等七种最常用的回归技术及其关键要素,最后介绍了选择正确的回归模型的关键因素。什么是回归分析?回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,转载 2015-08-24 10:31:04 · 1303 阅读 · 0 评论 -
GOOGLE校招的笔试题解析
据说是GOOGLE校招的笔试题:用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要多长的二进制字符串?A.12 B.14 C.18 D.24答案 B解法:根据信息论求取该信息熵为: a:出现概率:4/8,b:出现概率:2/8,c出现概率:1/8,d出现概率1/8 信息熵为:原创 2015-08-24 15:38:42 · 798 阅读 · 0 评论 -
MD5算法简介
发展历史 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。 将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5的作用是让大容量信息在用数字签名软件签署私人密转载 2015-08-10 14:28:26 · 720 阅读 · 0 评论 -
RGB图像归一化
通过对图像的RGB色彩空间进行归一化处理,在某些情况下是去除光照和阴影影响的一种简单和有效的方法。假设RGB代表原图像某点的像素值,rgb表示归一化之后的值,则r = R / (R+G+B);g = G / (R+G+B);b = B / (R+G+B); 实现归一化RGB的方法如下:// 对输入的原始RGB图像获取对应的归一化图像IplImage*转载 2015-07-18 22:44:33 · 5576 阅读 · 0 评论 -
isSubstring子串判断笔试题
作者:Hawstein出处:http://hawstein.com/posts/1.8.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。题目原文:Assume you have a method isSubstring which checks转载 2015-07-18 22:53:21 · 1873 阅读 · 0 评论 -
矩阵内存排布
为了高效的获取矩阵形式存在的多维对象中的元素,就需要知道其在内存中是如何分布的。 注意:矩阵格式的不同,其在内存中的分布方式也就不同。 例如,使用矩阵存储n个三维点,有如下四种可能的方式: 1、n 行 1 列,3 通道; 2、1 行 n 列,3 通道; 3、n 行 3 列,1 通道; 4、3 行 n 列,1 通道;转载 2015-07-18 22:45:38 · 1670 阅读 · 0 评论 -
浅谈数据压缩简史
电脑里的数据压缩其实类似于美眉们的瘦身运动,不外有两大功用。第一,可以节省空间。拿瘦身美眉来说,要是八个美眉可以挤进一辆出租车里,那该有多省钱啊!第二,可以减少对带宽的占用。例如,我们都想在不到 100Kbps 的 GPRS 网上观看 DVD 大片,这就好比瘦身美眉们总希望用一尺布裁出七件吊带衫,前者有待于数据压缩技术的突破性进展,后者则取决于美眉们的恒心和毅力。简单地说,如果没有数据压缩转载 2015-08-11 14:15:09 · 760 阅读 · 0 评论 -
数据结构之二叉树相关问题汇总
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树转载 2015-02-06 14:31:57 · 700 阅读 · 0 评论