算法&数据结构学习心得

[数据结构-线性表1.2] 链表与 LinkedList(.NET 源码学习)

[数据结构-线性表1.2] 链表与 LinkedList<T> 【注:本篇文章源码内容较少,分析度较浅,请酌情选择阅读】 关键词:链表(数据结构) C#中的链表(源码) 可空类型与特性(底层原理 源码) 迭代器的实现(底层原理) 接口IEqualityCompare<T>(源码) 相等判断(底层原理 ... »

[算法1-排序](.NET源码学习)& LINQ & Lambda

[算法1-排序](.NET源码学习)& LINQ & Lambda 说起排序算法,在日常实际开发中我们基本不在意这些事情,有API不用不是没事找事嘛。但必要的基础还是需要了解掌握。 排序的目的是为了让无序的数据,变得“有序”。此处的有序指的是,满足当前使用需求的顺序,除了自带的API,我们还可以自定 ... »

[数据结构-线性表1.1] 数组 (源码学习)

[数据结构-线性表1.1] 数组(源码学习) 数组,一种数据类型(在绝大数语言中不是基本数据类型)且为引用类型,在内存中以连续的内存单元进行分配,所以其大小在创建对象后为定值,不可更改。 一.内存分配 对于两种不同数据类型而言,其内存分配方式是不同的。值类型直接在栈(C#中称为堆栈Stack)上分配 ... »

数据结构与算法之美-学习心得系列一

本来打算贴上极客时间的目录图片,结果发现图片太长了。影响到阅读,何况我并不是为了宣传极客时间的专栏。 作为一名软件工程师,为什么要学习数据结构和算法?看到这个标题,我打算先不看文章,先自己反思一下。自己写程序多年,发现在做很多项目的时候被算法限制了自己的发挥,很多实现明明知道应该有更好的办法,但是就是无法写成代码。还有很多时候,看别人的源码也会一知半解,甚至要加上断点调试才知道整个实现逻辑。所以 »

邓俊辉数据结构学习心得系列——如何正确衡量一个算法的好坏

数据结构这门课主要关注如何设计合理的数据结构和算法,来简化时间复杂度和空间复杂度。 想要科学的解决这样一个优化的问题,最核心的思想也是最基础的,就是要量化问题。这也是将数学运用在实际问题中的一个基石。量化复杂度,也可以称作为给复杂度建模。这个想法是最基础且重要的。正如用熵去量化信息的不确定性,不同的范数去量化不同情况下空间的大小。好的量化方式,可以用简单的方式去解决一般性问题,其重要性说到这里,不 »