摘要: 模型和数据库 模型 首先我们在创建一个model的时候,这个类都是继承自 django.db.models.Model, 各种Model Field类型 DateField,使用Python的datetime.date实例表示的日期。 EmailField,基于CharField,使用EmailVa阅读全文
posted @ 2017-06-24 17:47 George1994 阅读(93) 评论(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 George1994 阅读(25) 评论(0) 编辑
摘要: B树 为什么要B树 磁盘中有两个机械运动的部分,分别是盘片旋转和磁臂移动。盘片旋转就是我们市面上所提到的多少转每分钟,而磁盘移动则是在盘片旋转到指定位置以后,移动磁臂后开始进行数据的读写。那么这就存在一个定位到磁盘中的块的过程,而定位是磁盘的存取中花费时间比较大的一块,毕竟机械运动花费的时候要远远大阅读全文
posted @ 2017-06-14 14:36 George1994 阅读(345) 评论(1) 编辑
摘要: 哈希算法总结 当关键字的全域比较小的时候,直接寻址是一种比较简单而且有效的技术。但是当关键字的全域比较大的时候,散列表节省的空间要大得多,相对直接寻址而言,散列表并不是把关键字当作数组的下标,而是通过散列函数来将关键字计算出槽的位置,散列函数包括了除法散列法、乘法散列法、全域散列法等,但也因为这样,阅读全文
posted @ 2017-06-08 10:17 George1994 阅读(52) 评论(0) 编辑
摘要: Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况;还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们常说的NoSQL,其并不需要一开始去创建好表结构,可以存储自定义的数据;还有Redis是分布式的,阅读全文
posted @ 2017-06-03 19:42 George1994 阅读(52) 评论(0) 编辑
摘要: 删除 因为根据BST中的规则,选择该结点的左子树中最大值和右子树中最小值替代掉原本要删除的点的值,再将改点删掉即可,所以这里只会讨论那个删掉的点。 分为以下情况: 1. 删除结点的左右子结点均为空,则将其直接删除即可; 2. 删除结点的左右子结点其中一方为空,则将存在的那一方的子结点替代掉删除结点即阅读全文
posted @ 2017-06-02 19:45 George1994 阅读(102) 评论(0) 编辑
摘要: 红黑树 性质 1. 红黑树的结点都是红色或者黑色 2. 根结点是黑色 3. 所有叶子都是黑色(这里的叶子结点是空结点) 4. 每个红色结点必须有两个黑色的子结点 5. 从任何一个节点到其每个叶子的所有简单路径都包含相同数目的黑色结点 性质1和性质3总是能够保持着; 性质4只有在这些情况下才会发生作用阅读全文
posted @ 2017-05-25 14:04 George1994 阅读(217) 评论(0) 编辑
摘要: 数据分析 热门博主 这里是在2017 05 20晚上爬取按照积分排名前3000位的博主,本文是在3000条博主的用户信息,23万条博主的活动信息的基础上进行数据分析的,此数据基于学习的目的,不用于商业目的; 本来打算对具体动态信息做个排名,不过考虑到可能会涉及隐私,所以放弃,全文分析均为宏观分析; 阅读全文
posted @ 2017-05-23 08:17 George1994 阅读(1455) 评论(13) 编辑
摘要: O(n) 排序算法 前言 前面有总结过各类常用的排序算法,但是那些排序算法平均的时间复杂度是O(nlogn),所以我要介绍三种时间复杂度为O(n)的线性时间复杂度的排序算法。 计数排序 计数排序利用了哈希的性质,将一个中间数组来记录数值对应的下标,最后查询对应的下标进行放置; 步骤如下: 1. 找出阅读全文
posted @ 2017-05-17 12:24 George1994 阅读(51) 评论(0) 编辑
摘要: 前言 基础知识 我们在用C++进行多线程编程的时候,可以使用内核的 同步原语 进行自己的封装,也可以使用C++11已经封装好的,因为我觉得有必要了解一些底层的东西,所以这两个内容我都会讲到。 《Linux多线程编程》中提到的 线程同步四项原则 : 1. 首要原则是尽量最低限度的共享原则,减少同步的场阅读全文
posted @ 2017-05-13 21:28 George1994 阅读(247) 评论(0) 编辑
摘要: 排序算法总结 直接插入排序 基本思想:将一个值插入到已经排好序中的相应位置。 冒泡排序 基本思想:两两比较相邻纪录的关键字,如果是反序的则进行交换。 简单选择排序 基本思想:从一个数组中选择一个最小(或者最大)的值和第一个位置进行交换,接着选择次的值和第二个位置交换,以此类推。 cpp void S阅读全文
posted @ 2017-05-02 16:35 George1994 阅读(41) 评论(0) 编辑
摘要: 贪心算法的原理和实现 1 基本思想 从问题的某一个初始解出发,通过一系列的贪心选择-当前状态下的 局部最 优选择,逐步逼近给定的目标; 在每个阶段,都作出一个按照()某个评价函数最优的决策,这个评价函数最优称为贪心准则(类似于动态规划的状态转移方程) 2 基本步骤 和动态规划类似 3 性质 一般具有阅读全文
posted @ 2017-04-28 14:18 George1994 阅读(422) 评论(0) 编辑
摘要: 面向对象高级编程 使用__slots__ 因为python是一门动态语言,所以无法避免的会有给一个实例添加各种的属性或者方法的情况,python可以使用这个来限制实力的属性。 但是我觉得这样也不是很好,如果有很多属性的话岂不是都写一长串,而且如果有人忘写了,还是不可避免的出现之前那种说过的情况。总而阅读全文
posted @ 2017-04-22 10:07 George1994 阅读(199) 评论(2) 编辑
摘要: 高级特性 切片 如果想取数组中的部分元素,则可以通过在数组中使用 实现,类似于JavaScript中的 ;其中 都可以为负数,表示以倒数的方式来计算,也可以只写一个负数,也可以什么都不写只有一个:,表示复制整个数组。 如果是 ,表明每隔一段来取一个,比如: 也可以这么写,前6个数每2个取1个: 切片阅读全文
posted @ 2017-04-21 13:59 George1994 阅读(253) 评论(0) 编辑
摘要: 前言 这篇博客是在学习某个网站时记录下来的,所以其纪录的顺序和那个网站里面一样,有些知识点已经大概了解了就不再赘述。 基础 字符串和编码 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF 8编码。 在 版本中,字符串是以Unicode来编码的;当你的源代阅读全文
posted @ 2017-04-19 13:58 George1994 阅读(68) 评论(0) 编辑