随笔分类 -  数据结构与算法

摘要:链表(通过“指针”将一组零散的内存块串联起来使用。) 三种常见链表结构: 如图所示,你会发现,其中有两个结点比较特殊,他们分别是第一个结点和最后一个结点。我们习惯把第一个结点叫做头结点,把最后一个结点叫做尾结点。其中,头结点用来记录链表的基地址。有了它,我们可以遍历得到整条链表。而尾结点特殊的地方是 阅读全文
posted @ 2019-05-24 12:31 learning_log 阅读(267) 评论(0) 推荐(0)
摘要:数组概念: 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表:顾名思义,线性表是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表,队列,栈等也是线性表结构。而与它对立的概念是非线性表,比如二叉树,堆,图等。 阅读全文
posted @ 2019-05-23 17:54 learning_log 阅读(499) 评论(0) 推荐(0)
摘要:排列组合问题 排列和组合问题,其实是两种问题,区分它们的原则是是否需要考虑顺序的不同。排列问题,考虑顺序;组合问题,不考虑顺序。 1.排列可重复 那么,何为“可重复”呢?暂且不考虑排列组合,先解释可重复。举个例子,冰淇淋有3种口味可以选择,我可以选择3种相同口味,也可以选择不同口味,每次选择即可相同 阅读全文
posted @ 2019-05-23 15:57 learning_log 阅读(991) 评论(0) 推荐(0)
摘要:大O复杂度表示法 这里有段非常简单的代码,求1,2,3...n的累加和。现在来估算一下这段代码的执行时间。 从CPU的角度来看,这段代码的每行都执行着类似的操作:读数据—运算—写数据。尽管每行代码对应的CPU执行的个数,执行的时间都不一样,但是,我们这里只是粗略估计,所有可以假设每行代码执行的时间都 阅读全文
posted @ 2019-05-15 19:02 learning_log 阅读(800) 评论(0) 推荐(0)