算法与设计模式
算法与设计模式
河先森
这个作者很懒,什么都没留下…
展开
-
数组和链表
数组和链表是一组简单、常用的,线性的数据结构,java中很多复杂数据结构都是基于它们实现的。虽然简单,但却是面试中的常客,尤其是算法相关的面试题。数组数组是一种有序的、固定大小的、存储相同数据类型的线性数据结构。数组有着广泛的应用,比如java中的ArrayList、Vector等数据结构就是基于数组实现的。数组的示意图:数组的主要特点:插入和删除效率低连续内存,大小固定,无法动态扩展可以根据下标随机访问,查找效率高链表链表也是一种线性的数据结构,但链表不是连续内存,而是通过指针指向将元原创 2020-11-23 19:53:13 · 3283 阅读 · 0 评论 -
如何理解时间复杂度和空间复杂度
我们经常可以看到这样的描述:软件=数据结构+算法,可见算法基础对于一个程序员的重要性。算法中,有两个基本概念:时间复杂度和空间复杂度。时间复杂度:描述算法执行消耗的时间,时间越短,时间复杂度越低,算法越优秀;空间复杂度:描述算法执行所占用的内存空间,占用内存越少,空间复杂度越低,算法越优秀;因此,时间复杂度和空间复杂度是评价一个算法性能的主要指标。那么如何计算一个算法的时间复杂度和空间复杂度呢?简单理解,计算时间复杂度就是评估一个算法完成后执行了多少行代码,也就是算法所消耗的时间,但是该如何用数原创 2020-11-22 09:44:11 · 442 阅读 · 0 评论