算法学习
徐念安
博客:https://geekmubai.com
展开
-
算法学习之动态数组类
算法学习之动态数组类一、整型动态数组类数组操作逻辑代码实现public class Array { private int[] data; private int size; //构造函数,传入数组的容量capacity构造Array public Array(int capacity){ data = new int[ca...原创 2018-08-23 19:40:57 · 773 阅读 · 0 评论 -
算法学习之链表
# 算法学习之链表一、基础知识0x1 为什么链表很重要链表——真正的动态数据结构最简单的动态数据结构更深入的理解引用(或者指针)更深入的理解递归辅助组成其他数据结构0x2 链表数据存储在“节点”中 优点:真正的动态,不需要处理固定容量的问题缺点:丧失了随机访问的能力0x3 数组和链表的对比数组最好用于索引有语意的情况。scores...原创 2018-09-07 11:38:46 · 162 阅读 · 0 评论 -
时间复杂度分析
时间复杂度分析我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。其实,只要讲到数据结构与算法,就一定离不开时间、空间复杂度分析。而且,我个人认为,复杂度分析是整个算法学习的精髓,只要掌握了它,数据结...原创 2018-11-23 17:37:46 · 1535 阅读 · 2 评论 -
浅析最好、最坏、平均、均摊时间复杂度
浅析最好、最坏、平均、均摊时间复杂度下面讲解四个复杂度分析方面的知识点,最好情况时间复杂度(best case time complexity)、最坏情况时间复杂度(worst case time complexity)、平均情况时间复杂度(average case time complexity)、均摊时间复杂度(amortized time complexity)。如果这几个概念你都能掌握,...原创 2018-11-24 15:55:41 · 2148 阅读 · 1 评论 -
初识数据结构之数组
为什么很多编程语言中数组都从0开始编号?提到数组,我想你肯定不陌生,甚至还会自信地说,它很简单啊。是的,在每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管数组看起来非常基础、简单,但是我估计很多人都并没有理解这个基础数据结构的精髓。在大部分编程语言中,数组都是从 0 开始编号的,但你是否下意识地想过,为什么数组要从 0 开...原创 2018-11-24 17:07:05 · 321 阅读 · 0 评论