基础知识就像是一座大楼,它决定了我们技术的高度。而要想快速做点事情,前提条件一定是基础能力过硬,“内功”要到位。
操作系统、计算机网络、编译原理、数据结构与算法等
入门为什么要学习数据结构与算法
业务开发过程中,会用到各种框架,中间件和底层系统。这些基础框架中,一般都柔和了很多基础数据结构和算法的设计思想。
掌握数据结构和算法,不管对与阅读框架源码,还是理解其背后的设计思想,都是非常有用的
对编程有追求,不想被行业淘汰,不想写凑合能用的代码,写出性能好的代码。
掌握了数据结构与算法,看待问题的深度,解决问题的角度会完全不一样。
抓住重点,系统高效的学习数据结构与算法
什么是数据结构?什么是算法
数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。
数据结构是为算法服务的,算法作用在特定的数据结构之上。
掌握一个数据结构与算法中最重要的概念--复杂度分析
不要死记硬背,不要为了学习而学习,而是要学习它的“来历”自身的特点“适合解决的问题”以及“实际的应用场景”。
学习技巧
边学边练,适度刷题(刷题:leetcode)
多问、多思考、多互动:找几个人一起学习,相互讨论切磋,有问题及时寻求老师答疑
打怪升级学习法:在枯燥的学习过程中,给自己设立一个切实可行的目标。
知识需要沉淀,不要试想一下子掌握所有:学习知识的过程是反复迭代,不断沉淀的过程。遇到”拦路虎“时,可以先沉淀一下,过几天再重新学习一般。所谓,书读百遍其义自现。
复杂度分析如何分析、统计算法的执行效率和资源消耗?
时间复杂度
不用具体的测试数据进行测试,就可以粗略地估计算法的执行效率方法
大O复杂度表示法:实际上并不具表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势,也叫做渐近时间复杂度,简称时间复杂度。
只