算法与数据结构总结(一)

一、算法与数据结构的重要性

为什么要学习算法和数据结构呢?许多人认为算法和数据结构和计算机网络以及操作系统一样脱离了实际的工作知识。
其实不然,这些知识都是程序员的”内功修炼“,重要性我就不多哔哔了,熟悉这些知识可以让你写出性能更优的代码,锻炼你的思维逻辑能力等等。越是厉害的公司,越是注重考察数据结构与算法这类基础知识。相比短期能力,他们更看中你的长期潜力。

二、数据结构和算法的概念

从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。

三、复杂度分析

采用大O复杂度表示法:在公式中的低阶、常量、系数三部分并不左右增长趋势,所以都可以忽略。我们只需要记录一个最大量级就可以了

  1. 时间复杂度:表示算法的运行速度与数据规模之间的增长关系。
  • 最好情况时间复杂度(best case time complexity)
  • 最坏情况时间复杂度(worst case time complexity)
  • 平均情况时间复杂度(average case time complexity)
  • 均摊时间复杂度(amortized time complexity)
  1. 空间复杂度:表示算法的存储空间与数据规模之间的增长关系。
  2. 常见时间复杂度

算法与数据结构总结(一)