共 11 页: 上一页 1 2 3 4 5 6 7 8 9 下一页 末页
摘要:关于非阻塞connnect的总结 在面试题中,看到有关于阻塞connect和非阻塞connect的区别; 显然,我们可以从阻塞和非阻塞的意思来回答,既然是阻塞,那么执行connect的操作会一直阻塞到连接超时或者连接成功才会返回相应的信息,而非阻塞connect则不管是否连接成功,都会立即返回信息。 阅读全文
posted @ 2017-07-12 16:56 banananana 阅读 (127) 评论 (0) 编辑
摘要:正则表达式总结 正则表达式的语法里面分为字符、预定义字符、数量词、边界匹配、逻辑分组、特殊构造,如图: 先介绍Python中支持正则表达式的re模块中的方法,使用什么函数都大同小异,重要的是正则表达式。 比如说邮箱,我们分析它的结构,其是一个前面为字符和数字组成,中间一个@,跟着字符和数字,后面是. 阅读全文
posted @ 2017-07-11 23:15 banananana 阅读 (165) 评论 (0) 编辑
摘要:LRU算法总结 无论是哪一层次的缓存都面临一个同样的问题:当容量有限的缓存的空闲空间全部用完后,又有新的内容需要添加进缓存时,如何挑选并舍弃原有的部分内容,从而腾出空间放入这些新的内容。解决这个问题的算法有几种,如最近使用算法(LRU)、先进先出算法(FIFO)、最近最少使用算法(LFU)、非最近使 阅读全文
posted @ 2017-07-08 15:39 banananana 阅读 (527) 评论 (0) 编辑
摘要:PiperMarkdown Blog for Django1.11,Python 3.6,based on Markdown,网址,希望大家能给个star,谢谢! 什么是PiperMarkdown 这是一个快速、简洁而且高效的博客,它基于Django1.11,并且使用了高效的mistune Mark 阅读全文
posted @ 2017-07-06 14:04 banananana 阅读 (336) 评论 (0) 编辑
摘要:记第一次Nginx的配置 Nginx 首先了解到Nginx是干什么的?它有哪些作用?比较常用到的基础功能有反向代理、负载均衡、正向代理、http服务器。这次部署用到的就是反向代理。 反向代理就是指在目标服务器和本地客户端之间建立一个中介,每次在本地客户端想要访问目标服务器的时候,nginx则会通过监 阅读全文
posted @ 2017-07-05 13:58 banananana 阅读 (102) 评论 (0) 编辑
摘要:LCA算法 朴素算法 也就是我们所说的暴力算法,大致的思路是从树根开始,往下迭代,如果当前结点比两个结点都小,那么说明要从树的右子树中找;相反则从左子树中查找;直到找到一个结点在当前结点的左边,一个在右边,说明当前结点为最近公共祖先,如果一个结点是另外一个结点的祖先,那么返回前面结点的父亲结点即可。 阅读全文
posted @ 2017-07-03 15:14 banananana 阅读 (215) 评论 (0) 编辑
摘要:单例模式 单例模式需要注意的地方在于 如何保证创建的实例是唯一的如何保证多线程情况下的访问清晰明了 目前有这么几种方法: module 其实,Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。 阅读全文
posted @ 2017-07-02 18:31 banananana 阅读 (142) 评论 (0) 编辑
摘要:模型和数据库 模型 首先我们在创建一个model的时候,这个类都是继承自 django.db.models.Model, 各种Model Field类型 DateField,使用Python的datetime.date实例表示的日期。 EmailField,基于CharField,使用EmailVa 阅读全文
posted @ 2017-06-24 17:47 banananana 阅读 (2752) 评论 (0) 编辑
摘要:第八章总结 8.5. heapq — 堆队列算法 有8个算法 最小堆封装 # 最小堆封装 from heapq import * import pprint class MinHeap: def __init__(self, iterable): self._iteralbe = [] self._ 阅读全文
posted @ 2017-06-21 22:21 banananana 阅读 (414) 评论 (0) 编辑
摘要:B树和B+树总结 B树 简介 这里的B树,也就是英文中的B-Tree,一个 m 阶的B树满足以下条件: 每个结点至多拥有m棵子树; 根结点至少拥有两颗子树(存在子树的情况下),根结点至少有一个关键字; 除了根结点以外,其余每个分支结点至少拥有 m/2 棵子树; 所有的叶结点都在同一层上,B树的叶子结 阅读全文
posted @ 2017-06-14 14:36 banananana 阅读 (31337) 评论 (4) 编辑
摘要:哈希算法总结 散列函数 除法散列法乘法散列法全域散列法 冲突解决办法 拉链法开放寻址法线性探查二次探查双重散列 线性探查二次探查双重散列 直接寻址法 直接寻址技术,顾名思义,为每一个关键字分配一个槽,适用于全域数量较少,并且对内存并不要求的情况下,这种方法可以保证了其每一个操作的时间复杂度都是O(1 阅读全文
posted @ 2017-06-08 10:17 banananana 阅读 (370) 评论 (0) 编辑
摘要:Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况;还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们常说的NoSQL,其并不需要一开始去创建好表结构,可以存储自定义的数据;还有Redis是分布式的, 阅读全文
posted @ 2017-06-03 19:42 banananana 阅读 (236) 评论 (0) 编辑
摘要:删除 因为根据BST中的规则,选择该结点的左子树中最大值和右子树中最小值替代掉原本要删除的点的值,再将改点删掉即可,所以这里只会讨论那个删掉的点。 分为以下情况: 1. 删除结点的左右子结点均为空,则将其直接删除即可; 2. 删除结点的左右子结点其中一方为空,则将存在的那一方的子结点替代掉删除结点即 阅读全文
posted @ 2017-06-02 19:45 banananana 阅读 (3786) 评论 (1) 编辑
摘要:红黑树 性质 1. 红黑树的结点都是红色或者黑色 2. 根结点是黑色 3. 所有叶子都是黑色(这里的叶子结点是空结点) 4. 每个红色结点必须有两个黑色的子结点 5. 从任何一个节点到其每个叶子的所有简单路径都包含相同数目的黑色结点 性质1和性质3总是能够保持着; 性质4只有在这些情况下才会发生作用 阅读全文
posted @ 2017-05-25 14:04 banananana 阅读 (1535) 评论 (0) 编辑
摘要:数据分析 热门博主 这里是在2017 05 20晚上爬取按照积分排名前3000位的博主,本文是在3000条博主的用户信息,23万条博主的活动信息的基础上进行数据分析的,此数据基于学习的目的,不用于商业目的; 本来打算对具体动态信息做个排名,不过考虑到可能会涉及隐私,所以放弃,全文分析均为宏观分析; 阅读全文
posted @ 2017-05-23 08:17 banananana 阅读 (2412) 评论 (14) 编辑
摘要:O(n) 排序算法 前言 前面有总结过各类常用的排序算法,但是那些排序算法平均的时间复杂度是O(nlogn),所以我要介绍三种时间复杂度为O(n)的线性时间复杂度的排序算法。 计数排序 计数排序利用了哈希的性质,将一个中间数组来记录数值对应的下标,最后查询对应的下标进行放置; 步骤如下: 1. 找出 阅读全文
posted @ 2017-05-17 12:24 banananana 阅读 (240) 评论 (0) 编辑
摘要:前言 基础知识 我们在用C++进行多线程编程的时候,可以使用内核的 同步原语 进行自己的封装,也可以使用C++11已经封装好的,因为我觉得有必要了解一些底层的东西,所以这两个内容我都会讲到。 《Linux多线程编程》中提到的 线程同步四项原则 : 1. 首要原则是尽量最低限度的共享原则,减少同步的场 阅读全文
posted @ 2017-05-13 21:28 banananana 阅读 (1152) 评论 (6) 编辑
摘要:排序算法总结 直接插入排序 基本思想:将一个值插入到已经排好序中的相应位置。 冒泡排序 基本思想:两两比较相邻纪录的关键字,如果是反序的则进行交换。 简单选择排序 基本思想:从一个数组中选择一个最小(或者最大)的值和第一个位置进行交换,接着选择次的值和第二个位置交换,以此类推。 cpp void S 阅读全文
posted @ 2017-05-02 16:35 banananana 阅读 (158) 评论 (0) 编辑
摘要:贪心算法的原理和实现 1 基本思想 从问题的某一个初始解出发,通过一系列的贪心选择-当前状态下的 局部最 优选择,逐步逼近给定的目标; 在每个阶段,都作出一个按照()某个评价函数最优的决策,这个评价函数最优称为贪心准则(类似于动态规划的状态转移方程) 2 基本步骤 和动态规划类似 3 性质 一般具有 阅读全文
posted @ 2017-04-28 14:18 banananana 阅读 (8127) 评论 (0) 编辑
摘要:面向对象高级编程 使用__slots__ 因为python是一门动态语言,所以无法避免的会有给一个实例添加各种的属性或者方法的情况,python可以使用这个来限制实力的属性。 但是我觉得这样也不是很好,如果有很多属性的话岂不是都写一长串,而且如果有人忘写了,还是不可避免的出现之前那种说过的情况。总而 阅读全文
posted @ 2017-04-22 10:07 banananana 阅读 (319) 评论 (2) 编辑
共 11 页: 上一页 1 2 3 4 5 6 7 8 9 下一页 末页