Categories
程式開發

快速入门数据结构和算法


一 前言

1 为什么要学习算法和数据结构?

  • 解决特定问题。
  • 深度优化程序性能的基础。
  • 学习一种思想:如何把现实问题转化为计算机语言表示。

2 业务开发要掌握到程度?

  • 了解常见数据结构和算法,沟通没有障碍。
  • 活学活用:遇到问题时知道要用什么数据结构和算法去优化。

二 数据结构基础

1 什么是数据结构?

数据结构是数据的组织、管理和存储格式,其使用目的是为了高效的访问和修改数据。

数据结构是算法的基石。如果把算法比喻成美丽灵动的舞者,那么数据结构就是舞者脚下广阔而坚实的舞台。

2 物理结构和逻辑结构的区别?

物理结构就像人的血肉和骨骼,看得见,摸得着,实实在在,如数组、链表。

逻辑结构就像人的思想和精神,它们看不见、摸不着,如队列、栈、树、图。

3 线性存储结构和非线性存储结构的区别?

  • 线性:元素之间的关系是一对一的,如栈、队列。
  • 非线性:每个元素可能连接0或多个元素,如树、图。

三 算法基础

1 什么是算法?

  • 数学:算法是用于解决某一类问题的公式和思想。
  • 计算机:一系列程序指令,用于解决特定的运算和逻辑问题。

2 如何衡量算法好坏?

  • 时间复杂度:运行时间长短。
  • 空间复杂度:占用内存大小。

3 怎么计算时间复杂度?

大O表示法(渐进时间复杂度):把程序的相对执行时间函数T(n)简化为一个数量级,这个数量级可以是n、n^2、logN等。

原文链接:【https://www.infoq.cn/article/5Ch4MuWjFfQh2EXu4iy0】。未经作者许可,禁止转载。