Java IO 之文件读写

1.文件读public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileName) { File file = new File(fileName); Inpu...
阅读(268) 评论(9)

复制带有random指针的单链表

如图1所示,有一条单链表,其节点除了有next指针外,还有一个random指针。random指针可指向单链表中的任意节点,包括它自身。random指针一旦指定,便不再更改。请设计算法,复制此单链表,并给出时间复杂度。图1 带有random指针的单链表解法1. 时间复杂度为O(n*n)先按next指针,将链表复制一份。使用p1指向原链表的头节点,p2指向p1指向的节点的random节点,p3指向p1的...
阅读(248) 评论(9)

STL源码之Set和Map

在上一篇博客中,讲到了STL中关于红黑树的实现,理解起来比较复杂,正所谓前人种树,后人乘凉,RBTree把树都种好了,接下来就该set和map这类关联式容器来“乘凉”了。STL的set和map都是基于红黑树实现的,和stack和queue都是基于deque一样,它们仅仅是调用了RBTree提供的接口函数,然后进行外层封装即可。本篇博客理解起来比较轻松,set和map的源代码也不多,大家可以慢慢“品味...
阅读(183) 评论(7)

Google面试题总结

1)村子里有100对夫妻,其中每个丈夫都瞒着自己的妻子偷情。村里的每个妻子都能立即发现除自己丈夫之外的其他男人是否偷情,唯独不知道她自己的丈夫到底有没有偷情。村里的规矩不容忍通*。任何一个妻子,一旦能证明自己的男人偷情,就必须当天把他杀死。村里的女人全都严格照此规矩办事。一天,女头领出来宣布,村里至少有一个丈夫偷情。请问接下来会发生什么事?答案:这是一个典型的递归问题。一旦所有的妻子都知道至少有一个...
阅读(312) 评论(6)

Scikit-learn实战之线性模型

下面是一系列的用于回归的方法,这些方法的目标值(target value)是由输入变量的线性组合而成。在数学概念上,如果 y^\hat y 是预测值: 在整个模块中,我们指定向量 为系数,并且 ω0\omega_0 作为截距。1. 普通最小二乘法      LinearRegression是一个线性模型,它的系数 最小化数据集中的观测结果和线性预测结果之间的残差和。它解决的问题在数学上可以形式...
阅读(503) 评论(11)

大数据开源框架特点大总结

1. ElasticSearch1.1 ElasticSearch的优点: 高并发。实测es单机分配10g内存单实例,写入能力1200qps,60g内存、12核CPU起3个实例预计可达到6000qps。 同机房单条数据写入平均3ms(比mysql慢,mg不清楚) 容错能力比mg强。比如1主多从,主片挂了从片会自动顶上 满足大数据下实时读写需求,无需分库(不存在库的概念)。 易扩展。实例间做下配置即可...
阅读(211) 评论(4)

Redis源码分析(2)-底层数据结构之字典

1. 字典的概念       Redis中的字典也就是我们常说的哈希表(Hash Table)或者叫映射(Map)。它是一种用于保存Key-Value键值对的抽象数据结构。在字典中,一个键(key)应该和一个值(value)进行对应(或者说键映射为值),这些键和值就称为键值对。       字典中的每个键都是唯一的,程序可以在字典中根据键去查找与之关联的值。当然也可以根据键对值进行增、删、改、查等操...
阅读(343) 评论(3)

跳跃表的原理及实现

1. 跳跃表的原理      学过数据结构的都知道,在单链表中查询一个元素的时间复杂度为O(n),即使该单链表是有序的,我们也不能通过2分的方式缩减时间复杂度。       如上图,我们要查询元素为55的结点,必须从头结点,循环遍历到最后一个节点,不算-INF(负无穷)一共查询8次。那么用什么办法能够用更少的次数访问55呢?最直观的,当然是新开辟一条捷径去访问55。       如上图,我们要...
阅读(389) 评论(3)

Scikit-learn之决策树

1. 决策树概述       决策树是一个非参数的监督式学习方法,主要用于分类和回归。算法的目标是通过推断数据特征,学习决策规则从而创建一个预测目标变量的模型。如下图所示,决策树通过一系列if-then-else 决策规则 近似估计一个正弦曲线。 1.1 决策树的优势       决策树具有以下优势: 简单易懂,原理清晰,决策树可以实现可视化; 数据准备简单。其他的方法需要实现数据归一化,创...
阅读(398) 评论(4)

Sckit-learn之朴素贝叶斯

1. 朴素贝叶斯方法概述      朴素贝叶斯方法是一系列有监督学习算法组成的,这些算法基于应用贝叶斯理论并带有“naive”的假设:所有特征之间两两独立。给定一个类变量 yy 和一个独立的特征向量集 x1x_1 到 xnx_n。贝叶斯理论阐述如下的关系式: ![这里写图片描述](http://scikit-learn.org/stable/_images/math/475...
阅读(418) 评论(4)

Redis源码分析(1)-底层数据结构SDS

1. Redis概述      Redis是一个Key-Value存储的NoSQL内存数据库。它支持支持五种数据类型:字符串,链表,字典(hash表),集合,有序集合。每一种数据结构都有自己独特的存储与设计方式,以保证Redis高效的数据存储和查找。2. 字符串      Redis是使用C语言编写的,但是它并没有C语言传统的字符串表示,而是创建了一种名为简单动态字符串(Simple Dynamic...
阅读(480) 评论(3)

VS2015+opencv2.4.13无本地依赖配置

1. 无本地依赖的解释及其必要性1.1 什么叫无本地依赖        在Windows系统中,对于常用的开源库,我们通常都喜欢将其编译成DLL。然后保存在某个目录下,最后将该目录添加到 Path 环境变量来达到在本机上对该DLL引用的一劳永逸的方法。这种方法对于学术人员做实验分析来说确实是一种比较方便的做法,但是如果是做一个可移植的系统的话,这种方式就很不靠谱!因为,这个程序只能在你的系统上运行,...
阅读(422) 评论(9)

算法面试题整理

1. 给出一个正整数,将该整数分解成质因数相乘的形式,例如n=56,它的质因数相乘的结果是:2*2*2*7。#include using namespace std; int main() { int n; cin >> n; while (n > 1) { int i; for (i = 2; i < n; i++) {...
阅读(325) 评论(7)

Github创建仓库上传代码

1. 注册账号创建仓库注册账号很简单,首先进入GitHub主站网页https://github.com/ 如下图片所示: 注册成功之后就可以创建代码仓库了,在页面上方用户菜单上选择 “+”->New repository 创建一个新的仓库:之后就可以为仓库创建一个名字,一般取一个项目相关的名字:至此,这样仓库就创建完了2. 安装git客户端GitHub只是一个git服务器,想要将自己的代码上传到...
阅读(355) 评论(5)

Sckit-learn之数据预处理

1. 数据预处理在机器学习中的重要性      在Scikit-learn中的sklearn.preprocessing包提供了一些公共的实用函数和转换类来将特征行向量转换成更适合于接下来的估计的表示。       对于Scikit-learn中实现的许多机器学习估计来说,对数据集进行规范化是一个通用的需求。如果个别的特征或多或少的不服从与通常的数据分布:例如标准正态分布(均值为0,方差为1),这...
阅读(355) 评论(4)
84条 共6页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:99927次
    • 积分:2768
    • 等级:
    • 排名:第12997名
    • 原创:74篇
    • 转载:6篇
    • 译文:4篇
    • 评论:722条
    我的公众号

    博客专栏
    最新评论