排序是非常常见的操作,常见的排序算法的时间复杂度一般为\(O(n^2)\)(冒泡、选择、插入)或\(O(nlogn)\)(快排、归并等)。虽然这些算法对于编程人员来说是基础,但是在实际工程中往往会使用语言内置的排序函数,主要是考虑到编程效率和自己编写排序函数时涵盖情况不全的问题。因此本文主要讲述python中的内置函数。

阅读全文 »

Binary Indexed Trees(中文名为树状数组,下文简称为BIT)是一种特殊的数据结构,可多用于高效计算数列的前缀和, 区间和。对于长度为n的数组,它可以以\(O(logn)\)的时间得到任意前缀和 $ {_{i=1}^{j}a[i],1<=j<=N}$,并同时支持在 $ O(log n)$时间内支持动态单点值的修改。空间复杂度 \(O(n)\)

阅读全文 »

由于某些网站对会对爬虫做限制,因此常常需要通过代理将爬虫的实际IP隐蔽起来,代理也有分类,如透明代理,高匿代理等。本文主要讲述如何获取代理IP,并且如何存储和使用。

阅读全文 »

HTTP协议采用了非常简单的请求-响应模式。由浏览器向网站发出请求(称为http request),网站根据请求将相关的资源返回给浏览器(称为http response)。这样周而复始就形成了网络通信。

阅读全文 »
0%