当前搜索:

布隆过滤器原理

布隆过滤器: 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 基本概念: 如果想要判断一个...
阅读(74) 评论(0)

celery的配置和使用

环境:ubuntu环境 下载必要的包: pip install celery   apt-get install erlang   apt-get install rabbitmq-server   开启rabbitmq-server service rabbitmq-server start ...
阅读(1518) 评论(0)

Scrapyd部署爬虫项目

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

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

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

递归算法堆栈溢出

递归算法:     一种直接或者间接的调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的。 特点:   ①递归就是在过程或者函数里调用自身。   ②在使用递归策略时,必须有一个明确的递归条件,称为递归出口。   ③递归算法解题通常显得很简洁,但递归算法解题的效率...
阅读(2502) 评论(0)

内存中的堆和栈

内存结构: 堆区,栈区,全局区,文字常量区,程序代码区 栈: 栈是你的电脑内存的一个特别区域,它用来存储被每一个function(包括mian()方法)创建的临时变量。栈是FILO,就是先进后出原则的结构体,它密切的被CPU管理和充分利用。每次function声明一个新的变量,它...
阅读(2518) 评论(0)

如何避免内存泄漏?

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

Python实现归并排序

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

Python实现希尔排序

希尔排序(Shell Sort) 希尔排序是插入排序的一种,也称为缩小增量排序,是直接插入排序的一种更加高效的改进版。是一种非稳定排序算法。 原理:希尔排序把记录按下标的一定增量分组,对每组使用直接插入排序算法排序,随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰好被分成...
阅读(3621) 评论(0)

Python实现快速排序

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

Python实现插入排序

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

Python的内存管理机制

Python的内存管理机制 一、引用计数:通过引用计数来保持对内存中的变量跟踪,Python内部记录中所有在使用对象各有多少个引用。 Python中有个内部跟踪变量叫做引用计数器,每个变量有多少个引用,简称引用计数。当对象被创建时就创建了一个引用计数。 当某个对象的引用计数为0时,对象就不在需要,...
阅读(3737) 评论(0)

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

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

cookie的属性和属性的作用

cookie属性: name字段 :一个cookie的名称。 value字段 :一个cookie的值。 domain字段 :可以访问此cookie的域名 path字段:可以访问此cookie的页面路径。 Size字段 :此cookie大小。 http字段 :cookie的httponl...
阅读(3844) 评论(0)

http、https的区别

http、https的区别: http:http协议是超文本传输协议,被用于在web浏览器和网站服务器之间传递信息。http协议工作是以明文方式发送内容,不提供任何形式的数据加密,而这也是很容易被黑客利用的地方,如果黑客截取了web浏览器和网站服务器之间的传输信息,就可以直接读懂其中的信息,...
阅读(3661) 评论(0)

Http请求头和常见响应状态码

请求头: Accept:指浏览器或其他客户可以接爱的MIME文件格式。可以根据它判断并返回适当的文件格式。 Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1. Accept-Language:指出浏览器可以接受的语言种类,如en或en-...
阅读(3739) 评论(0)

多线程和多进程的区别?

多线程和多进程的区别? 线程: 线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。   一个标准的线程由线程ID,当前指令指针...
阅读(2927) 评论(0)

tcp和udp的区别?

TCP(Transmission Control Protocol,传输控制协议)     面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数...
阅读(2925) 评论(0)

Python实现选择排序

选择排序(Selection sort) 选择排序:一种简单直观的排序算法。 工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余的未排序的元素中继续寻找最小(大)元素,然后放到已排序的末尾。直到所有元素均排序完毕。 优点:选择排序与数据移动有关。如果某个...
阅读(2432) 评论(0)

Python实现冒泡排序

冒泡排序(Bubble Sort) 冒泡排序,是一种简单的排序算法。通过重复遍历要排序的数列,一次比较两个元素,如果顺序错误,就将其做交换,重复进行直到没有再需要交换,说明数列已经排序完成了 思路(升序): 1)比较相邻的元素,如果第一个比第二个大,交换位置 2)对每一对相邻的元素做同样的工作,从...
阅读(2476) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 21万+
    积分: 3063
    排名: 1万+
    文章分类
    文章存档
    最新评论