程序设计离不开数据结构和算法。数据结构是数据组织和存储的逻辑形式,以达到方便访问和修改数据的目的。而算法是根据实际输入输出的需求设计的一系列计算过程,被认为是程序的灵魂。设计良好的算法的重要意义正如Thomas在《算法导论》中提到“计算机可以做得很快,但不是无限快;存储器可以做到很便宜,但不是免费的。因此,计算时间是一种有限的资源,存储空间也是一种有限的资源。这些有限的资源必须有效地使用,那些时间上和空间上有效的算法可以帮助做到这一点。“
本章内容涵盖了 Go 标准库中的 3 个包:
sort 包包含基本的排序方法,支持切片数据排序以及用户自定义数据集合排序
index/suffixary 包实现了后缀数组相关算法以支持许多常见的字符串操作
container 包提供了对 heap、list 和 ring 这 3 种数据结构的底层支持。任何实现了相应接口的数据结构都可以调用该结构的方法。