题目

  1. 给定1亿个数(范围1-1亿,可重复出现)。给定任意个数,求出该数在该数组中的大概排序?(非内存处理)?
  2. 10亿个数中找出最大的10000个数(top K问题)

棘手点:

  • 不能一次性读入内存
    -

默认的sort函数

shell的sort命令,采用了归并排序,排序时候的临时小文件是默认放在/tmp路径下的,有时候/tmp的空间有限制,比如4G,那么,超过4G的文件就没有办法用sort了。当然也可以用sort -T Path 来临时文件的目录。

python的sort

java的sort

C++的sort

排序算法

1.如果是无重复整型,果断位排序,(编程珠玑有介绍)。
2.如果有重复的整型,果断计数排序,
3.如果是字符串,果断字典树来排序啊。。当然,就算不是字典树,我们也可以转化为字典树来解答。。

遍历一次,累计给定的数大于多少个元素,不就是准确的排行么?
如果要大概,也可以抽样,累计大于样本的数目,估计一个百分比。
如果题目是指,遍历一次后,需求任意个数的排行,那么可在遍历时生成直方图,然后转为累计直方图,最后可以直方图区间插值得出估计的排行。

归并排序

特点,它是读取次数最少得排序,因为若内存空间不足,则必须将数据存在硬盘中,要尽量减少I/0的次数。

快排

1.快速排序的概率时间是接近o(n)的,是几种 nlogn中最好的
2.快速排序的空间复杂度是 o(n)的,优于归并的 o(2
n)
3.内存的好处就是读取存取速度快,而恰恰快排是依赖R/W的排序

A: 当数据本身有一定次序时,快排会退化为o(n^2)
B: 恩,不过这种情况一般不会发生,可以通过random参数来fix的,算法导论排序那章讨论过这个特例和fix方法的。

请问一下为什么快排的空间复杂度是O(n)呢?。不是原地排序吗?是递归使用的栈内存吗?

桶排序

O(n)
这算脑筋急转弯

参考

语音识别 基本框架

流程

1 . 准备声学模型训练数据

  • 音素词典
  • 发音词典
  • 初次模型训练数据
  • 准备开发验证集数据
  • 语音数据增强的方法,借鉴百度Deep speech2中说到的方法进行扩充语料。

细节

$$\begin{split}
W^{*}&=\mathop{\arg\max}{w} P(W|Y)\
&=\mathop{\arg\max}
{w} \frac{P(Y|W)P(W)}{P(Y)}\
&=\mathop{\arg\max}{w} \underbrace{P(Y|W)}{AM} \underbrace{P(W)}_{LM}\
\end{split}$$

上式中W表示文字序列,Y表示语音输入。公式1表示语音识别的目标是在给定语音输入的情况下,找到可能性最大的文字序列。根据Baye’ Rule,可以得到公式2,其中分母表示出现这条语音的概率,它相比于求解的文字序列没有参数关系,可以在求解时忽略,进而得到公式3。公式3中第一部分表示给定一个文字序列出现这条音频的概率,它就是语音识别中的声学模型;第二部分表示出现这个文字序列的概率,它就是语音识别中的语言模型。无论是传统的方法也好,现在火热的深 度神经网络的方法也罢,目前的语音识别架构都没有脱离上面的公式,也就是说都离不开AM和LM。下面分别对这两部分进行介绍

参考

https://www.zhihu.com/question/20398418

【反爬虫系列】代理IP

简介

市面上的免费代理IP种类繁多,很多品牌被吹嘘得天花乱坠,让用户在挑选时不知道该如何下手。
其实对于大部分用户来说,选择一款服务器稳定的代理IP资源是十分明智的,而对于免费代理IP来说,稳定性恰恰是它们的通用诟病,
你需要花费大量的时间精力来筛选可用IP资源,

资源

免费IP

https://github.com/jhao104/proxy_pool

收费IP

供应商 节点来源 协议支持 线路类型 价格
代理云 宽带拨号 Http/Https/Socks4 5 电信、联通、移动 最低5000IP/日(起售),最高可满足10万IP/日
[太阳HTTP] Http/Https/Socks5 每日免费领20个IP。公司给买的每天300个IP,估计是最低套餐

方式

  • HTTP代理IP从成本上区分有免费版和付费版两种,免费IP获取方便,在百度搜索关键词就可以得到大量资源,
    缺点是免费IP服务器存在不安全因素,用户的访问信息有可能会被记录,
    造成个人隐私泄漏,无法保障使用者的安全性。由于代理IP传输的特殊性,甚至还可能掉进一些伪造的钓鱼网站,带来不必要的麻烦。

分布式高质量代理IP变成了爬虫业的刚需,通过接入代理云平台,直接进行多线程操作

代理云为爬虫提供分布式代理IP解决方案

#

代理IP速度慢的原因有很多,
原因一,代理IP服务器所处网络速度不佳;
原因二,代理IP服务器性能差;
原因三,代理IP服务器传输距离远;
原因四,目标站点速度不稳定;
原因五,用户电脑配置差;原因六,用户网速慢。