分类标签归档:数据结构

数据结构与算法


开篇词

开篇词 | 数据结构与算法,应该这样学!

想象一下,你在开发一个网站的用户系统。这个用户系统的功能之一是,对某个尝试登录用户的ID去核实是否合法,这就需要去存储着海量数据的数据库中查找这个ID。假设这个尝试登录用户的ID是lagou,一个可行的办法是,对数据库中的每个记录去匹配是否与lagou一致。然而,效率更高的方法是,预先对数据库中所有的数据按照字母顺序进行排序,接着就可以从有序数据的中间开始查找,去通过二分查找不断缩小查找范围。如果这个系统的注册用户只有不足16个,两种查找方式所花费时间的差异也许并不明显,无非就是16次匹配与log₂16 = 4次匹配的区别。但如果注册用户的数量

Read more

Python 进阶 迭代器


可迭代的对象,迭代器和生成器

迭代是数据处理的基石。扫描内存中放不下的数据集时?,我们要找到一种惰性获取数据 项的方式,即按需一次获取一个数据项。这就是迭代器模式(Iterator pattern)。

内存中的数据为啥还是要迭代?

所有生成器都是迭代器,因为生成器完全实现了迭代器接口。不过生成器可以生成数据源外的数据

1 Sentence类第1版:单词序列
# 第一版返回可迭代对象
class Sentence:
    def __init__(self, text):
        self.text = text
        self.words = RE_WORD.findall

Read more