学习:数据结构与算法之美(1-3)

第一课

基础知识就像是一座大楼的地基,它决定了我们的技术高度。而要想快速做出点事情,前提条件一定是基础能力过硬,“内功”要到位。

第二课

为什么要学习数据结构和算法(摘自网友极客时间留言)

  1. 直接好处是能够写出性能更优的代码,
  2. 算法是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面
  3. 长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一。

一定要动手写,看十遍也不如写一遍的牢
写代码能力缺失,把学到的数据结构和算法都实现一遍,可很好的锻炼变成能力
十年磨一剑,做技术就是不要浮躁,要耐得住寂寞,沉得下心。
卧薪尝胆,提高自己,沉淀自己。
总有一天,机会会到来,你做好充分抓住他的准备就好。

数据结构和算法的概念:

广义上来说,数据结构是一组数据的存储结构,算法是操作数据的一组方法
数据结构是为算法服务的,算法要作用在特定的数据结构之上。

在学习过程中,我们要注重这三点:
“是什么”,“为什么”,“怎么做”

那么数据结构与算法比较重要的内容如下所示:

10个数据结构:数组,链表,栈,队列,散列表,二叉树,堆,跳表,图,Tire树
10个算法:递归,排序,二分查找,搜索,哈希算法,贪心算法,分治算法,回溯算法,动态规划,字符匹配算法。

一些可以让你事半功倍的技巧:

  1. 边学边练,适度刷题
  2. 多问多思考多互动
  3. 打怪升级学习方法,克服“坚持不下来”的毛病,列一些切实可行的目标
  4. 知识需要沉淀,不要想试图一下子掌握所有

第三课

大O表示代码执行时间随数据规模增长的变化趋势—>时间复杂度

时间复杂度的分析方法:

  1. 只关注循环次数最多的一段代码
  2. 加法法则:总复杂度等于量级最大的那段代码复杂度
  3. 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积。

O(1)
是常量级时间复杂度的表示方法
只要代码的时间不随n的增大而增大,这种代码的时间复杂度记作O(1)
时间复杂度:执行时间与数据规模之间的增长关系。反映执行快慢
空间复杂度:算法的存储空间与数据规模之间的增长关系。反映内存消耗

以上内容就是今晚学习的数据结构与算法之美整理出来的部分内容,仅以此种方式监督自己学习。

猜你喜欢

转载自blog.csdn.net/qq_34377336/article/details/84074326
今日推荐