- 博客(79)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Mime-一个随机模拟useragent库
Mime Mime 是一个随机模拟 useragent 的库。 它可以用来作为反反爬的工具,用来躲过一些 通过 useragent 的反爬手段。需求>= php7.1https://www.useragentstring.com Mime 的 useragent 数据来源于 https://www.useragentstring.com安装...
2018-05-16 19:31:49
943
原创 2019年书单
2019年了,自己自我总结和反省了很长时间,发现还是需要在基础上面下功夫,所以今年还是在计算机基础方面上多花与一些时间,80%时间花在计算机基础知识的夯实,外语学习,20%时间花在自己感兴趣的其他领域,心理学,经济学(量化投资方向)。看书的话还是以英文版的为主,主要为了能同时提高英语水平。以及要开始思考怎么发展自己的副业了。书籍《梦的解析》-弗洛伊德 (done)《Learning...
2019-10-07 23:41:33
347
原创 大数据学习笔记之Spark-优化
Spark优化函数传递在spark中,很多操作都需要依赖用户传递的函数,在我们传递函数的时候,如果函数中包含其他对象的饮用,Spark也会把其他对象传递。(尤其是在python中)解决方法:将函数中的必要字段转换成局部变量,然后进行传递。引用《Spark快速大数据分析》...
2019-02-11 15:54:38
321
原创 大数据学习笔记之Spark-RDD编程
RDD编程Spark中的核心数据操作:创建RDD转换已有的RDD调用RDD操作进行求值Note:RDD是Spark数据操作的核心,它的主要特点是操作链,惰性求值。RDD创建创建RDD主要有两种方法:读取外部数据集JavaRDD<String> lines = sc.textFile("your file path")在驱动
2019-02-11 15:47:54
474
原创 算法-堆排序
堆排序思路将数组转换成一个最小堆(升序排序)/最大堆(降序排序),然后挨个删除并输出堆顶元素,并继续调整堆为最小堆(升序排序)或者 最大堆(降序排列),从而最终生成一个升序或者降序序列。算法复杂度平均复杂度为: O(n) = nlogn,最坏情况下的算法复杂度:O(n) = nlogn;python实现## HeapSort implemented by pytho...
2018-12-18 17:11:43
233
原创 算法-归并排序
归并排序思路归并排序采用的是分治的思想,将一个 n 长度的数组不断的分成无数个小数组,然后对小数组进行排序,最后将所以的有序小数组合并,最终数组有序。算法复杂度 归并排序的平均复杂度: O(n) = nlogn, 最坏时间复杂度为:O(n) = nlogn算法空间复杂度 归并排序的空间复杂度: O(n) = npython实现# 递归实现import ...
2018-12-10 21:31:34
209
原创 算法-插入排序
插入排序思路插入排序是最直观和自然的排序,它是从左到右,将一个数从它为起始位置 loc ,从右向左,进行比较,如果 array[loc-1] < array[loc] 或者 loc = 0 ,那么就将这个数插入 loc 位置,否则 loc 位置左移 ( loc = loc -1 )继续进行比较,直到数组有序。算法复杂度 插入排序的最坏时间复杂度为: O(n) = ...
2018-12-09 22:39:02
215
原创 算法-冒泡排序
冒泡排序思路模拟水中的冒泡过程, 大的水泡总是从底部不断的超过小的水泡,最终上升到水面。冒泡排序也是,从左到右,小的数不断的从右边冒泡上升到左边,最终实现有序。复杂度 冒泡排序的最坏时间复杂度为: O(n) = n^2,平均复杂度为: O(n) = n^2python实现def bubblesort(arr): for i in range(0,len(arr...
2018-12-09 21:34:54
166
原创 算法-纸牌游戏
纸牌游戏时间限制:1秒空间限制:32768K牛牛和羊羊正在玩一个纸牌游戏。这个游戏一共有n张纸牌, 第i张纸牌上写着数字a_i。牛牛和羊羊轮流抽牌, 牛牛先抽, 每次抽牌他们可以从纸牌堆中任意选择一张抽出, 直到纸牌被抽完。他们的得分等于他们抽到的纸牌数字总和。现在假设牛牛和羊羊都采用最优策略, 请你计算出游戏结束后牛牛得分减去羊羊得分等于多少。输入描述:输入包括两行。第...
2018-11-25 17:44:49
1602
原创 算法-翻转数列
翻转数列小Q定义了一种数列称为翻转数列:给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.而n = 4, m = 1, 数列就是: -1, +2, -3, + 4.小Q现在希望你能帮他算算前n项和为...
2018-11-25 17:41:35
1162
原创 算法-查找数组中的前M大的数
查找数组中的前M大的数思路根据快速排序的Partition的思想,假定数组长度为n, 选定一个pivot,总能将数组分为 [0,k-1]和[k,n], 其中[0,k-1]<pivot,[k+1,n] > pivot。如果 k = m, 那么算法结束。如果k > m, 对[k+1,n]继续进行切分,每次切分k都会减少一部分, 直到k = m, 如果k < m, 对...
2018-11-25 17:38:57
1068
原创 算法-分块/索引查找
分块/索引查找思路前提: 1.块间有序 2.块内可以无序 3.索引中保存块的起始地址,和块内的最大值或者最小值 首先对索引进行折半查找,然后对块内进行顺序查找。算法复杂度 假设一个n长度的数组分为m块,每块的长度为: n/m, 那么算法的平均复杂度:O(n) = logm+n/m, 算法最坏情况下的复杂度: O(n) = logm + n/m。cpp实现st...
2018-11-25 17:36:04
617
原创 算法-二分/折半查找
二分/折半查找思路前提: 数组必须是已经排好序的有序数组。假设数组为升序排列,把数组一分为二,取中间点mid做比较,如果比mid大, 那么继续在[mid+1,last]中查找,反之在[first,mid-1]中查找,对子数组继续进行上述操作,直到找到。算法复杂度 平均算法复杂度为: O(n) = logn;最坏情况的算法复杂度为: O(n) = logn;cpp实现...
2018-11-25 17:33:44
291
原创 算法-顺序搜索
顺序查找思路从数组的开头到结尾,顺序挨个比较查找。算法复杂度 平均算法复杂度为:O(n)= n; 最坏情况的算法复杂度为:O(n) = n;cpp实现int orderSearch(int dest_arr[],int dest) { int arr_len = sizeof(dest_arr)/sizeof(*dest_arr); for(int ...
2018-11-25 17:30:44
337
原创 算法- 快速排序
快速排序思路选定一个pivot, 移动元素使得pivot左右两边的元素,一边大于pivot, 一边小于pivot, 然后分别对左右两边递归进行同样的操作,最后得到一个有序排列。复杂度 快速排序的最坏时间复杂度为: O(n) = n^2,但平均复杂度为: O(n) = nlogncpp实现template <class Type>void Swap(...
2018-11-25 16:19:00
197
原创 自制爬虫框架-Pider框架快速开始
快速使用 项目的基本结构运行爬虫数据处理示例基本用法响应处理多进程快速使用项目的基本结构//项目根目录|-- Config //配置文件|-- LICENSE|-- README.md|-- composer.json|-- composer.lock|-- examples //示例|-- install.sh //安装脚本|...
2018-05-06 13:05:31
753
原创 自制爬虫框架-Pider框架安装
安装 需求安装安装需求PHP >= 7.1pcntl(可选,多进程需要)安装git clone https://github.com/duanqiaobb/pider.gitgit submodule update --init --recursive//安装composer,如果出现问题,请参考 [composer官方文档]...
2018-05-04 22:43:51
399
原创 自制爬虫框架-Pider框架介绍
介绍 动机特性介绍 Pider 框架的目的是用PHP创建一个优雅的,可靠的,有用的爬虫框架。动机 毫无疑问, PHP 是一个很好的web编程语言。社区里面,各种web开发框架 也层出不穷,但是爬虫和数据处理框架却寥寥无几,而好用的几乎没有。我相信不仅仅只是可以在web领域大 放光彩,也可以在可以在数据处理和爬虫方面有所作为,就好像Python。所...
2018-05-04 20:22:48
1375
1
原创 自制爬虫框架-Pider框架简介
简介 Pider是什么?当前版本和状态文档简介Pider是什么? Pider是一个优雅,强大,模板化的爬虫框架。Pider想要 在数据采集方面给PHP社区提供更加方便,快捷的工具和框架。当前版本和状态1.0 (开发中)文档 详细的使用用法,请参考文档。 如果你对本项目感兴趣, 或者觉得对你有用,可以在...
2018-05-04 11:39:18
860
原创 Scrapy框架——安装Scrapy
Scrapy框架—— 安装Scrapy 需求配置安装sqlite依赖库编译python3.6编译Twisted安装Scrapy测试Scrapy是否成功安装Scrapy框架—— 安装Scrapy Scrapy 可以说是爬虫界鼎鼎有名的框架。 它是一个重型的爬虫框架,结合数据抓取,导出,以及部分的数据清洗的功能。本文针在python3.6的环境下来安装scra
2018-01-07 19:44:00
1032
2
原创 吴恩达-DeepLeaning课程笔记
吴恩达-DeepLeaning课程笔记02监控神经网络吴恩达-DeepLeaning课程笔记02监控神经网络合适的场景需要选择合适的神经网络算法:房地产(Real estate)(比如租房,买房,中介)– Standard NN (标准神经网络)在线广告(Online Advertise) – Standard NN(标准神经
2017-12-22 16:12:14
436
原创 从Github中的Commit历史移除敏感文件
从Github中的Commit历史移除敏感文件filter-branchBFG参考从Github中的Commit历史移除敏感文件 在很多情况,我们由于疏忽会将一些敏感信息误传到Github上面去。 尽管我们可以使用 git rm 将包含敏感信息文件删除掉,然后重新提交上传,文件就不会在 github 中的文件列表显示。 但是这并不能完全将敏感信息文件从
2017-12-19 15:52:50
3833
原创 Linux下的Type C网络端口无法使用
Linux下的Type C网络端口无法使用解决方法:Linux下的Type C网络端口无法使用 最近,一直使用的一个USB-hub 无法工作而退休,就再某宝上面,淘了一个Type-C hub。 但是拿来用的时候才发现。 有线网络端口在Linux下无法识别。但是USB端口可以使用。解决方法: 在他们的商品详情页面,发现这款 Type
2017-12-18 11:40:39
1723
原创 2018年书单
2018年书单2018年书单《Learn python the hard way 》- done 《Paradigms-of-Artificial-Intelligence-Programming》- 未开始 《Python for Data Analysis》- 未开始 《推荐系统-技术、评估及高效算法》- 未开始 《机器学习理论和算法》- 未开始...
2017-12-12 11:32:35
1161
原创 2017年书单
2017年书单2017年书单 《Steven Jobs》 by Walter Isaacson 状态: (done) 《失控》 by [美] 凯文·凯利 状态: (done)
2017-12-12 10:42:14
262
原创 PHP多进程爬虫-Curl中的 SSL 和 pcntl_fork
PHP多进程爬虫-Curl中的 SSL 和 pcntl_fork起源原因解决方法参考&引用PHP多进程爬虫-Curl中的 SSL 和 pcntl_fork起源 最近在使用PHP多进程写爬虫的时候,遇到一个很奇怪的问题。在PHP多进程程序中,如果父进程对某域名(比如:https://www.jd.com)进行https请求后,那么子进程http
2017-11-18 14:44:59
2103
原创 Centos Docker 中安装Manual手册
Centos Docker 中安装Manual手册修改/etc/yum.conf配置安装相关的软件( man man-db man-pages )查看相关命令手册Centos Docker 中安装Manual手册 Centos的官方docker镜像是最小化的Centos镜像,所以很多东西都没有装,连一般Linux都会自带的manual手册也没有内置。如果你想
2017-10-15 22:36:43
724
原创 或许我们其实并不懂歪果仁
这首英文诗,原来是在百度百家号上面看的,看到挺有意思的就去查了下, 没想到真的有这首诗。 真的有趣啊,想我们初中,和高中学英文的那种纠结和痛苦,那时,真的回想,要是我是个外国人多好,那样就不要每天操蛋的学习英文了。 现在想想,看来那时还是太年轻,没有明白外国人真正的烦恼,”中国有美食的省份太多,记都记不住啦,好烦!”(偷笑…), 还居然专门写了首诗,原谅我忍不住笑了。原诗Have they
2017-09-09 23:35:03
453
原创 Linux Shell编程之介绍
Linux Shell编程之介绍Shell的介绍shellscript的解释器Linux Shell编程之介绍在Linux下命令行终端(terminal)是一个很重要的工具。我们可以在终端下执行一条条命令得到输出结果。在命令行下,命令都分为一个个极小的子集,每个命令只专著于完成和实现一个功能 这也是Unix的设计哲学, 小即是美 。而不想在windows上的GU
2017-09-07 22:01:04
407
翻译 网络丢包的四大原因和修复方法
网络丢包的四大原因和修复方法网络链接阻塞解决方法(路由器/交换机/防火墙/等等)的设备性能解决方法网络设备上的软件问题(bug)解决方法硬件或网络缆线的毛病解决方法引用网络丢包的四大原因和修复方法 MIKE HURLEY/@译:断桥bian 网络性能问题是一个老生长谈的问题。网络是应用和数据的基础。所
2017-08-23 23:49:17
170504
1
原创 Org-mode技巧之Latex导出
Org-mode技巧之Latex导出 Emacs的 Org-mode 是一个强大的写作工具,与 Markdown 相比, Org-mode 的功能更为强大,但是同时它的学习成本相对来说要高一些。 Org-mode 中有许多很方便的 小技巧,这篇博文主要是用来记载和总结使用过程发现的技巧, 以便以后忘了可以查找。并会一直更新。Latex 公式导出 Org-mode
2017-08-21 23:06:57
3634
原创 Linux下禁用触摸板
Linux下禁用触摸板使用xorg的设备管理命令 xinput#首先查看触摸板的id为多少xinput list#禁用触摸板xinput set-prop 14(触摸板id,可以通过xinput list查看到) "Device Enabled" 0 #开启触摸板xinput set-prop 14(触摸板id,可以通过xinput list查看到) "Device Enab
2017-07-10 11:07:18
687
原创 PHP面试总结-2
面试的公司面试中体现的问题解决和提升的方法面试官问的问题PHP基础题1:PHP基础题2:PHP基础题3:PHP基础题4:PHP基础题5:PHP基础试题6:Linux基础题:性能优化和架构题第二次面试的公司是一家游戏公司,总公司在上海,公司的办公室在酒店里,挺不错的。我对这家公司比较满意,同时也很希望进入这家公司。进入公司后,首先是在人事妹子那拿了份面试题和面试需要填写的资料填了
2017-07-02 21:56:43
815
原创 PHP面试总结-1
面试公司面试中体现出的问题解决和提升的方法面试官提出的问题首先进行自我介绍关系型数据库和非关系型数据库之间的区别两者的本质区别:非关系型数据库的优势:关系型数据库的优势:现在的相关技术Mysql的HandlerSocket命令空间的作用谈一谈数据库优化的思路谈一谈对高并发,和大数据的处理方法Web服务器数据库方面刚从大学毕业,第一件事就是找工作,面试了几
2017-06-26 21:08:38
742
翻译 C++的属性指示符
C++的属性指示符,有点类似Java中Anotation, 是可以实现定义的。它主要是用来引入一些对象,类型,代码的属性,也可以理解为限制对象,类型,代码的一些行为。它为实现定义的语言扩展提供标准统一的语法,比如GNU和IBM的__attribute__((…)),微软的__declspec()语言扩展,等等。尽管每个特殊的属性仅当实现允许时才有效,但是属性几乎能在C++程...
2017-05-27 22:00:19
10842
3
原创 Graphivz中文显示问题
Graphviz (相关详细教程请点击进入官网)是基于dot语言的绘图工具,可以画有向图,无向图,关系图,目录图,流程图等。在使用过程中,发现 Graphivz 对 中文的支持还是不够,容易出现各种各样的问题。中文乱码问题 这种问题,很多人都遇到过,因为 Graphivz 默认是不支持中文的,所以如果直接写中文的画,会显示成乱码,一般这种情况可以修改文件的编码 格式为 UTF-8 , 然后
2017-05-12 14:30:39
1937
原创 C++中的复数
C++中的复数 C++中的复数操作在C语言基础上引进了面向对象的特性,在 C++ 头文件在 complex 中定义了一个 complex 类用来表示复数。同时为了兼容 C 的 complex 类型,也提供了一个 complex.h 的头文件。 不同的是,在 complex.h 头文件中, complex 关键字被废弃,只能使用 _Complex 和 __complex__ 来使用 C风格的复数形
2017-04-27 19:30:33
26770
1
原创 C语言中的复数
C语言中的复数操作 复数在数学运算中十分重要,在编写数值运算或者算法的时候,我们会用到复数这种概念。 那么,复数在C/C++语言中是如何表示的呢?我们接下来一一介绍。C语言中复数 在数学中一个复数可以定义为 (z=a + bi) 的形式。 C 语言在 ISO C99 时就引入了复数类型。它是通过 complex.h 中定义的。 我们可以使用 complex , __complex__ ,
2017-04-27 11:10:59
44759
12
原创 Makefile快速入门
Make是一个可扩展性极强的编译构建工具,将它和相关语言的编译器结合起来,我们几乎可以用它来 编译构建任何编程语言程序。 Makefile的基本语法结构 make主要是通过默认的 Makefile 或 makefile 的配置文件(下文统一称 makefile )中的规则来构建项目的。 makefile 其实是有无数的规则组成的。 我们可以用这些规则来编译,链接,以及运行相关命令和脚本。这些规则
2017-04-23 13:59:34
673
原创 Linux用户管理 ----- 禁止用户登陆
Linux下的用户主要分为两种,一种是系统用户,一种是普通管理用户, 系统用户和普通用户的区别就是,添加的系统用户不会出现在登陆界面,而添加的普通用户则会默认的出现在登陆界面上.如何分辨系统用户和普通管理用户 普通管理用户和系统用户是Linux中的两个用户组,两个用户组是通过UID的范围来划分的,Linux系统默认的限定系统用户的UID的范围为 100~499, 普通管理
2016-12-18 21:58:32
5875
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人