本章导读
原创约 501 字
本章适合谁
对于希望系统掌握数据结构和算法的读者,都建议学习本章。
对于希望速成刷题能力应对笔试的读者,不需要完整学习本章,请参考 速成目录。
本章导读
本章的重点在数据结构和排序算法,涵盖所有基本数据结构,也会讲解一些算法题中常用的高级数据结构,最后讲解十种排序算法。
基本数据结构包括数组链表、队列、栈、哈希表、二叉堆等,本章会讲解他们的原理、代码实现和常见变体。
高级数据结构包括图、线段树、树状数组、字典树、并查集等。考虑这是基础章节,本章把重点放在它们的原理和使用场景,具体代码实现安排在后面的数据结构设计章节中。
了解了这些数据结构的底层原理和适用场景,你才能充分利用每个数据结构的特点解决算法问题,并准确理解代码的时间复杂度。
在本章节中,会经常用到 算法可视化面板 对稍微复杂的数据结构操作进行可视化。可视化代码是用 JavaScript 写的,但是都比较简单,无论你是否了解 JavaScript 都应该很容易看懂。
提示
本章的重点在于让读者理解每个数据结构的实现原理、优缺点和局限性,给出的 Java/C++/Golang/Python/JavaScript 代码实现只确保正确性和可读性。
至于编程语言层面的极致优化和最佳实践,不在本站的教学范围。如果你追求更深入地理解,可以参考对应编程语言的标准库。
当然,我给出的多语言代码难免也可能出现细节错误,欢迎大家批评指正,让我们共同进步!