- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 前端工程师的自我修养
前端工程师的自我修养一个月的学习时间建议按下列顺序进行,第三阶段为option。Long term来讲第三阶段最为重要。第一阶段:以HTML5/CSS3,JS基础为主(对应1、2、4) 第二阶段:框架(JQuery,AngularJS/Angular,React,Vue)(对应3、4) 第三阶段:前端工程(开发规范,构建工具,性能优化)(对应5)0. 为什么为什么整个互联网行业都...
2019-07-12 11:14:37 590 1
原创 二分图匹配 - 原理
上一篇文章讲了二分图匹配的缘起,这篇文章就讲讲二分图匹配的算法详解二分图的概念二分图又称作二部图,是图论中的一种特殊模型。 设G=(V, E)是一个无向图。如果顶点集V可分割为两个互不相交的子集X和Y,并且图中每条边连接的两个顶点一个在X中,另一个在Y中,则称图G为二分图。图1二分图的性质定理:当且仅当无向图G的每一个回路的次数均是偶数时,G才是一个二分图。如果无回路,相当...
2018-07-30 18:45:32 1140 2
原创 二分图匹配 - 缘起
出于对二分图匹配问题的兴趣,接下来会从缘起、原理、打车匹配、外卖匹配来深入了解二分图匹配算法。先从吴军老师在《得到》专栏里的一篇文章“打车软件匹配人和车是否比下围棋还复杂?”说起。滴滴的人说打车调度比下围棋的算法还难围棋只有19*19个=361个格子 把滴滴的车作为棋盘的行序列,打车的人比作纵序列,那交叉点比361要多很多 如果按公布的数字,车辆在千万级别,打车的人在亿级别,那组合...
2018-07-28 13:59:37 537
原创 CentOS6.5 安装apache/mysql/php
1, 安装mysqlyum -y install mysql mysql-serverchkconfig --levels 235 mysqld on/etc/init.d/mysqld startmysql_secure_installation2,安装httpdyum -y install httpdchkconfig --levels 235 httpd on
2016-11-05 16:14:59 1069
原创 OpenSwan在CentOS6.4上的编译安装与配置
1,运行以下命令sysctl -a | egrep "ipv4.*(accept|send)_redirects" | awk -F "=" '{print $1"= 0"}' >> /etc/sysctl.conf sed -i "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" /etc/sysctl.confse...
2015-12-09 22:15:18 4349
原创 Kerberos for linux配置
[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]ticket_lifetime = 24000clockskew = 3600default_realm
2015-09-06 16:05:32 2941
原创 逻辑回归 - 理论篇
此文章为初学机器学习时,对Andrew NG《机器学习》课程整理所写,也参考了其他CSDN同学的笔记,写的较为粗糙,很多网友帮助我指正了问题,现在重新更新向量化部分,并加入实践篇。什么是逻辑回归?Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedli...
2014-07-16 15:42:14 343562 33
原创 线性回归-理论篇
线性回归(Linear Regression)"回归"的由来Francis Galton,英国生物学家,他研究了父母身高与子女身高之间关系后得出,若父母身高高于平均大众身高,则其子女身高倾向于倒退生长,即会比其父母身高矮一些而更接近于大众平均身高。若父母身高小于平均身高,则其子女身高倾向于向上生长,以更接近于大众平均身高。此现象,被Galton称之为回归现象,即regres
2014-07-03 12:11:38 7964 4
原创 Linux开机启动过程分析
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。
2014-06-24 17:54:10 4126
原创 海量数据处理
海量:1)无法在较短时间内迅速解决2)无法一次性装入内存针对时间,搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie树针对空间,大而化小:分而治之/hash映射分而治之/hash映射 + hash统计 + 堆/快速/归并排序;双层桶划分Bloom filter/Bitmap;Trie树/数
2014-06-19 12:04:49 1379
原创 Java NIO
了解Java NIO前,先参考磁盘IO:缓存IO、直接IO、内存映射及网络IO模型。1、网络IOBIO就是基于Thread per Request的传统server/client实现模式(阻塞I/O);NIO通常采用Reactor模式,当有事件触发时,我们得到通知,进行相应的处理(select加非阻塞I/O);AIO通常采用Proactor模式,AIO进行I/O操作,都是异
2013-04-10 17:41:19 2717
原创 Socket中的TIME_WAIT状态
从上面的示意图可以看得出来,TIME_WAIT是主动关闭连接的一方保持的状态,在客户端完成数据传输之后,它就会发起主动关闭连接close(),从而进入TIME_WAIT的状态,然后在保持这个状态2MSL(max segment lifetime)时间之后,彻底关闭回收资源。为什么要这么做?明明就已经主动关闭连接了为啥还要保持资源一段时间呢?这个是TCP/IP的设计者规定的,主要出于以下两个方面的考
2013-04-09 23:29:21 6698
原创 网络IO模型
Unix下共有五种网络I/O模型 :a. 阻塞I/O:进程会一直阻塞,直到数据拷贝完成b. 非阻塞I/O:I/O请求时加上O_NONBLOCK一类的标志位,立刻返回,I/O没有就绪会返回错误,需要请求进程主动轮询不断发I/O请求直到返回正确;在数据拷贝的过程中,进程是阻塞的c. I/O复用(select和poll):与非阻塞I/O本质一样,不过利用了新的select系统调用,由内核来负
2013-04-09 22:55:04 1628
原创 磁盘IO:缓存IO、直接IO、内存映射
磁盘IO的几种访问方式如下:缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间。 读操作:操作系统检查内核的缓冲区有没有需要的数据,如果已经缓存了,那么就直接从缓存中返回;否则从磁盘中读取,然后缓存在操作系统
2013-04-09 18:40:16 11593
原创 快速排序
(1) 分治法的基本思想分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题,然后递归地解这些子问题,最后将这些子问题的解组合为原问题的解。(2)快速排序的基本思想设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:1)分解: 在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为
2011-10-20 17:03:14 1061
原创 a的n次方的快速算法及大数相乘
对于a的n次幂求解这个问题,不少人看到后都觉得没有什么内容吧!我第一次想到这个问题也觉得没有什么内容,但是后来仔细想想,里面还真是有学问哦!想想看如果我们求 a8 ,有以下两种方法:1)a8 = a * a * a * a * a * a * a * a 需要计算 7次乘法2)a 8 = (a * a) * A * A (其中A = a * a) 需要计算3次乘法对于这么简单...
2011-10-20 14:17:12 12559 5
原创 二叉排序树
树型结构一直是一种很重要的数据结构,我们知道二叉查找树BST提供了一种快速查找,插入的数据结构。相比散列表来说BST占用空间更小,对于数据量较大和空间要求较高的场合,BST就显得大有用处了。BST的大部分操作平均运行时间为O(logN),但是如果树是含N个结点的线性链,则最坏情况运行时间会变为O(N)。为了避免出现最坏情况我们给它增加一些平衡条件, 使它的高度最多为2log(N+1),最坏情况
2011-10-19 15:31:04 894
原创 折半查找算法及变形
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。【基本思想】将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果xa[n/2],则我们只要在数组a的右半部继续搜索x。二分搜索法的应用极其广泛,而且它的思想易于理解。第一个二分搜索算法早在1946 年就出
2011-10-18 11:10:50 1018
原创 汉诺塔算法
汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。为了更清楚地描述算法,可以定义一个函数move(n,a,b,c)。该函数的功能是:将N个盘子从A杆上借助C杆移动到B杆上。这样移动
2011-10-18 10:29:37 2749
原创 全排列算法
全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4的全排列。由于一个数的全排列就是其本身,从而得到以上结果。2、再看后三个数3, 4, 5。它们的全排列为3 4 5、3 5 4、 4 3 5、
2011-10-18 10:09:17 1343
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人