自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

翻译 线性排序

三种时间复杂度是O(n)的排序算法:桶排序、计数排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫做线性排序(Linear sort).之所以能做到线性的时间复杂度,主要原因是,这三个算法是基于比较的排序算法,都不涉及元素之间的比较操作。桶排序(Bucket sort)桶排序,顾名思义,会用到:“桶”,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据在单独...

2019-07-10 06:43:13 348

翻译 排序

最经典最常用的排序有:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。我们在分析排序算法的时间复杂度时,要分别给出最好情况、最坏情况、平均情况下的时间复杂度。除此之外,你还要说出最好。最坏书剑复杂度对应的要排序的原始数据是什么样的。为什么要区分三种时间复杂度呢?第一,有些排序算法会区分,为了好对比,所以最好做一下区分;第二,对于要排序的数据,有的接近有序,有的完全...

2019-07-04 05:11:29 97

翻译 递归

数据结构和算法两大难点:1、动态规划;2、递归:1)DFS深度优先搜索;2)前中后序二叉树遍历。递归需要满足三个条件:1.一个问题的解可以分解为几个子问题的解;2.这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样;3.存在递归终止条件。写递归代码最关键的是写出来地推公式,找到终止条件。**总结:**写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推...

2019-07-04 04:26:51 77

翻译 队列

队列:想象成排队买票,先来的先买,后来的人只能站队尾,不允许插队。先进者先出,这就是典型的“队列”。队列和栈的比较:所以,队列和栈一样,也是一种操作受限的线性表数据结构。跟栈一样,队列可以用数组来实现,也可以用链表实现,用数组实现的队列叫做顺序队列,用链表实现的队列叫做链式队列。循环队列中判断队满的条件公式:(tail+1)%n=head,其中 head 的指针,指向队头; tail ...

2019-06-19 02:14:25 88

翻译

栈:后进者先出,先进者后出,这就是典型的“栈”结构栈是一种“操作受限”的线性表当某个数据集合只涉及在一段插入和删除数据,并且满足后进先出,先进后出的特性,我们就应该首选“栈”这种数据结构。实际上,栈既可以用数组来实现,也可以用链表来实现,用数组来实现栈,我们叫做顺序栈;用链表实现的栈,我们叫做链式栈。引用自极客时间...

2019-06-14 04:42:55 85

翻译 链表(下)

几个写链表代码的技巧:技巧1:理解指针或引用的含义指针:存储所指对象的内存地址。C语言有指针,没有指针的取而代之的是“引用”,像JAVA、python将某个变量赋值给指针,实际上就是将这个变量地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量。写链表代码时经常会用到的:p->next = q ,这行代码是说,P结点中的next指针存...

2019-06-14 04:37:19 178

翻译 链表(上)

1、缓存是一种提高数据读取性能的技术。2、常见的缓存淘汰策略有:先进先出策略FIFO(First In ,First Out);最少使用策略LFU(Least Frequentlly Used);最近最少使用策略LRU(Least Recently Used)。3、数组需要一块连续的内存空间来存储。4、链表是通过“指针”将一组零散的内存块串联起来。链表可以分为:单链表、双向链表、循环链表...

2019-06-14 03:55:05 130

转载 数组

1、数组(Array)是一种线性表数据结构。他用一组连续的内存空间,来存储一组具有相同类型的数据。线性表(Linear List)是指数据排成像一条线一样的结构。除了数组,链表、队列、栈等也是线性表结构。非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。连续的内存空间和相同类型的数据正是因为这两个限制,数组才有了“随机访问”的特性。但有...

2019-06-11 21:13:17 89

转载 时间复杂度(下)

1、最好情况时间复杂度是指在最理想的情况下,执行一段代码的时间复杂度;2、最坏情况时间复杂度同理是指在最糟糕的情况下,执行一段代码的时间复杂度;3、平均情况时间复杂度4、均摊时间复杂度均摊时间复杂度应用的场景比它更加特殊、更加有限5、对比insert()和 find() 的例子,会发现两者有很大的差别:1)find() 函数在极端情况下,复杂度才为 O(1)。但insert()在...

2019-06-11 21:02:15 538

转载 复杂度分析(上)

1、大 O 复杂度表示法所有代码的执行时间 T(n) 与每行代码的执行次数 n 成正.我们可以把这个规律总结成一个公式。如下:T(n)=O(f(n))2、时间复杂度分析1)只关注循环执行次数最多的一段代码2)加法法则:总复杂度等于量级最大的那段代码的复杂度3)乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积3、几种常见的时间复杂度实例分析其中分为多项式量级和非多项式量级,非...

2019-06-11 20:46:09 865

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除