本来打算贴上极客时间的目录图片,结果发现图片太长了。影响到阅读,何况我并不是为了宣传极客时间的专栏。 作为一名软件工程师,为什么要学习数据结构和算法?看到这个标题,我打算先不看文章,先自己反思一下。自己写程序多年,发现在做很多项目的时候被算法限制了自己的发挥,很多实现明明知道应该有更好的办法 ...
如何抓住重点,系统高效地学习数据结构与算法 什么是数据结构 什么是算法 从广义上讲,数据结构就是指一组数据的存储结构算法就是操作数据的一组方法 从侠义上讲,是指某些著名的数据结构和算法,比如队列 栈 堆 二分查找 动态规划等 数据结构和算法是相辅相成的,数据结构是为了算法服务的,算法要作用在特定的数据结构之上。因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。 复杂度分析 用于考量 ...
2019-10-09 22:31 0 921 推荐指数:
本来打算贴上极客时间的目录图片,结果发现图片太长了。影响到阅读,何况我并不是为了宣传极客时间的专栏。 作为一名软件工程师,为什么要学习数据结构和算法?看到这个标题,我打算先不看文章,先自己反思一下。自己写程序多年,发现在做很多项目的时候被算法限制了自己的发挥,很多实现明明知道应该有更好的办法 ...
1 基础知识就像是一座大楼的地基,它决定了我们的技术高度。而要想快速做出点事情,前提条件一定是基础能力过硬,“内功”要到位。(内功:操作系统、计算机网络、编译原理) 学习数据结构和算法,并不是为了死记硬背几个知识点。我们的目的是建立时间复杂度、空间复杂度意识,写出高质量的代码,能够设计基础架构 ...
《数据结构与算法之美》是极客时间上的一个算法学习系列,在学习之后特在此做记录和总结。 一、数组 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 1)线性表(Linear List) 顾名思义,线性表就是数据排成像一条线一样的结构。每个 ...
栈,在这里说的是一种数据结构。 你还可能知道的栈 提到“栈”,做Java的同学还会想起Java内存模型中的“栈”,与之紧密关联的还有一个名词——堆,但是这里,此栈非彼栈。 引用《深入理解Java虚拟机》中有关栈的介绍 经常有人把Java内存区分为堆内存(Heap)和栈内存(Stack ...
《数据结构与算法之美》是极客时间上的一个算法学习系列,在学习之后特在此做记录和总结。 掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。一旦掌握数据结构和算法,之前可能需要费很大劲儿来优化的代码,需要花很多心思来设计的架构,用了数据结构和算法之后,很容易 ...
是递归结构.广度搜索是指先搜索当前顶点,再搜索这个顶点的所有关联顶点,再继续搜索关联顶点的关联顶点... ...
4.2 栈数据结构 栈是一种遵从后进先出(LIFO)原则的有序集合。新添加或待删除的元素都保存在栈的同 一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 栈的使用场景:在编程语言的编译器和内存中保存变量、方法调用等,也被用于浏览器历史记录 (浏览器的返回按钮 ...
数据结构与算法的地位对于一个程序员来说不言而喻。今天这篇文章不是来劝你们学习数据结构与算法的,也不是来和你们说数据结构与算法有多重要。主要是最近几天后台有读者问我是如何学习数据结构与算法的,有没有什么捷径,是要看视频还是看书,去哪刷题等…..而且有些还是大三大四的,搞的我都替你们着急、担心 ...