关闭
当前搜索:

布隆过滤器原理

布隆过滤器: 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 基本概念: 如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思...
阅读(46) 评论(0)

celery的配置和使用

环境:ubuntu环境 下载必要的包: pip install celery   apt-get install erlang   apt-get install rabbitmq-server   开启rabbitmq-server service rabbitmq-server start vi /var/log/rabbitmq/rabbit\@ubunt...
阅读(1383) 评论(0)

Scrapyd部署爬虫项目

Scrapyd部署爬虫项目 1、新建虚拟环境(方便管理),在虚拟环境中安装scrapy项目需要使用到的包 mkvirtualenv--python=C:\python27\scripts\python.exe scrapySpider 新建虚拟环境 进入虚拟环境使用pip将所需包安装完成 2、安装scrapyd模块,scrapyd模块是专门用于部署scrapy项目的,可以部署和管理sc...
阅读(1769) 评论(0)

Python实现深度遍历和广度遍历

深度遍历: 原则:从上到下,从左到右 逻辑(本质用递归): 1)、找根节点 2)、找根节点的左边 3)、找根节点的右边 class Node(object): def __init__(self, item=None, left=None, right=None): self.item = item self.left = left ...
阅读(2454) 评论(0)

递归算法堆栈溢出

递归算法:     一种直接或者间接的调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的。 特点:   ①递归就是在过程或者函数里调用自身。   ②在使用递归策略时,必须有一个明确的递归条件,称为递归出口。   ③递归算法解题通常显得很简洁,但递归算法解题的效率较低。所以一般不倡导使用递归算法设计程序。   ④在递归调用的过程当中系统的每一层的返回点、局部变量...
阅读(2352) 评论(0)

内存中的堆和栈

内存结构: 堆区,栈区,全局区,文字常量区,程序代码区 栈: 栈是你的电脑内存的一个特别区域,它用来存储被每一个function(包括mian()方法)创建的临时变量。栈是FILO,就是先进后出原则的结构体,它密切的被CPU管理和充分利用。每次function声明一个新的变量,它就会被“推”到栈中。然后每次一个function退出时,所有关于这个函数中定义的变量都会被释放(换句话...
阅读(2439) 评论(0)

如何避免内存泄漏?

内存泄漏 由于疏忽,或者错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。导致程序运行速度减慢,甚至系统崩溃等严重后果。有__del__()函数的对象间的循环引用是导致内存泄漏的主凶。不使用一个对象时,使用:del object 来删除一个对象的引用计数就可以有效防止内存泄漏问题...
阅读(2384) 评论(0)

Python实现归并排序

归并排序 归并排序是典型的分治法的应用 思想:先递归分解数组,再合并数组 原理:将数组分解最小之后,然后合并两个有序数组,基本思想是比较两个数组的最前面的数,谁小就取谁,取完后,将相应的指针后移以为。然后再比较,直到一个数组为空,最后把另一个数组的剩余部分复制过来即可。 Python代码实现: # 归并排序 def merge_sort(alist): if len(...
阅读(2408) 评论(0)

Python实现希尔排序

希尔排序(Shell Sort) 希尔排序是插入排序的一种,也称为缩小增量排序,是直接插入排序的一种更加高效的改进版。是一种非稳定排序算法。 原理:希尔排序把记录按下标的一定增量分组,对每组使用直接插入排序算法排序,随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰好被分成一组,算法便终止。 基本思想:把数组列在一个表中并对列分别进行插入排序,重复这个过程,不过每次用更长...
阅读(3564) 评论(0)

Python实现快速排序

快速排序(QuickSort) 工作原理:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后按照这种方法对两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 实现步骤: 1)从数列中挑出一个元素,当做基准 2)重新排序数列,所有元素比基准小的摆放在基准前面,所有比基准大的摆在基准的后面(想同的数可以到任一...
阅读(3543) 评论(0)

Python实现插入排序

插入排序(Insertion Sort): 插入排序是一种简单直观的排序算法。 工作原理:通过构建有序序列,对于未排序的数据,在已排序序列中从后向前进行扫描,找到相应位置并插入。插入排序,在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 Pyhton代码实现: # 插入排序 # order 默认为True 表示升序;False 表示降序 def i...
阅读(3614) 评论(0)

Python的内存管理机制

Python的内存管理机制 一、引用计数:通过引用计数来保持对内存中的变量跟踪,Python内部记录中所有在使用对象各有多少个引用。 Python中有个内部跟踪变量叫做引用计数器,每个变量有多少个引用,简称引用计数。当对象被创建时就创建了一个引用计数。 当某个对象的引用计数为0时,对象就不在需要,就列入了垃圾回收队列。 引用计数增加: 1.对象被创建:x=4; 2.另外的别人被创建:y...
阅读(3679) 评论(0)

关系型数据库的ACID指的是什么?

关系型数据库的ACID: 1、A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。 比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败...
阅读(3524) 评论(0)

cookie的属性和属性的作用

cookie属性: name字段 :一个cookie的名称。 value字段 :一个cookie的值。 domain字段 :可以访问此cookie的域名 path字段:可以访问此cookie的页面路径。 Size字段 :此cookie大小。 http字段 :cookie的httponly属性。若此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过docume...
阅读(3623) 评论(0)

http、https的区别

http、https的区别: http:http协议是超文本传输协议,被用于在web浏览器和网站服务器之间传递信息。http协议工作是以明文方式发送内容,不提供任何形式的数据加密,而这也是很容易被黑客利用的地方,如果黑客截取了web浏览器和网站服务器之间的传输信息,就可以直接读懂其中的信息,因此http协议不适合传输一些重要的、敏感的信息,比如信用卡密码及支付验证码等。 https:安全套...
阅读(3622) 评论(0)
71条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:204382次
    • 积分:2968
    • 等级:
    • 排名:第13715名
    • 原创:71篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论