E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《数据结构与算法之美》
学习笔记——
数据结构与算法之美
_极客时间
1、要掌握的:10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法算法和数据结构的关系:数据结构是为算法服务的,算法要作用在特定的数据结构之上2、基本功:复杂度分析我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法,了解你的代码运行质量!所有代
飞花落雨
·
2022-09-10 19:31
java面试
学习
算法
数据结构
数据结构与算法之美
读书笔记12
目录一、线性排序算法介绍二、桶排序(Bucketsort)1.算法原理:2.使用条件3.适用场景4.应用案例1)需求描述:2)解决思路:3)注意点:三、计数排序(Countingsort)1.算法原理2.代码实现(参见下一条留言)3.使用条件四、基数排序(Radixsort)1.算法原理(以排序10万个手机号为例来说明)2.使用条件一、线性排序算法介绍1.线性排序算法包括桶排序、计数排序、基数排序
STATICHIT静砸
·
2022-09-01 11:03
排序算法
算法
java
二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树
------本文是学习算法的笔记,《
数据结构与算法之美
》,极客时间的课程------上一节学习的树、二叉树以及二叉树的遍历,今天我们再来学习一种特殊的二叉树——二叉查找树。
every__day
·
2022-07-22 11:34
算法与数据结构
Binary
Search
Tree
二叉树
二叉查找树
数据结构与算法_合集导航
本系列文章是极客时间王铮老师《
数据结构与算法之美
》专栏的学习笔记。旨在和大家一起学习和交流。如有疑问,请在下方留言。
我是未来架构师
·
2022-06-05 19:28
算法/数据结构
算法
数据结构
面试
【算法】常用的数据结构与算法
学习了王争老师的
数据结构与算法之美
之后,比较有感触,他把我们常用的数据结构和算法都讲了一遍,而且讲的还不错。整理汇总一下作为笔记。一.复杂度分析非常重要。
风度78
·
2022-04-09 06:55
算法
数据结构
链表
队列
java
数据结构与算法之美
笔记(十X)总结课-在实际开发中,如何权衡选择使用哪种数据结构和算法
学习数据结构和算法,不要停留在学院派的思维中,只把算法当作应付面试、考试或者竞赛的花拳绣腿。作为软件开发工程师,我们要把数据结构和算法,应用到软件开发中,解决实际的开发问题。要想游刃有余地解决今后你要面对的问题,光是熟知每种数据结构和算法的功能、特点、时间空间复杂度,还是不够的。毕竟工程上的问题不是算法题。算法题的背景、条件、限制都非常明确,我们只需要在规定的输入、输出下,找最优解就可以了。而工程
最 上 川
·
2022-03-28 10:10
数据结构
项目经验
二叉树和堆
声明:图片引用自《极客时间——
数据结构与算法之美
》二叉树二叉树:就是最多只能有两个叉的树结构。图中1是普通的二叉树,2、3是两种特殊的二叉树。
·
2022-03-24 21:19
数据结构与算法
数据结构与算法之美
(十)树、二叉树、二叉查找树、平衡二叉查找树、红黑树
二叉树介绍树(Tree)二叉树(BinaryTree)二叉树的存储1.链式存储2.数组顺序存储二叉树的遍历前序遍历中序遍历后序遍历层次遍历思考题二叉查找树(BinarySearchTree)二叉查找树的各种操作查找插入删除时间复杂度分析思考题平衡二叉查找树介绍常见的平衡二叉查找树AVL树伸展树(SplayTree)树堆(Treap)红黑树(Red-BlackTree,R-BTree)介绍优点定义证
雪糕cool
·
2022-03-21 07:16
数据结构与算法之美
数据结构
算法
b树
二分查找
学习极客时间的
数据结构与算法之美
的专栏,记录笔记。
疯狂的小强_94ee
·
2022-02-22 05:37
《
数据结构与算法之美
》——队列
什么是队列队列是一种线性表数据结构,和栈类似它操作受限,表现为先进先出,后进后出它有头指针和尾指针之分,删除元素从head操作,添加元素从tail操作基于以上特点,我们看到队列是这样的image.png常见的队列队列的花样比较多,这源于它的灵活性和众多的应用场景。比如当初在学习数据结构这门课的时候,肯定听说过循环队列。了解Java并发的时候,肯定知道并发队列顺序队列和链式队列和前面的栈数据结构一样
Jackie_Zheng
·
2022-02-17 14:14
学习计划
•极客时间【专栏】基础:趣谈linux计算机组成原理tomcat数学基础课编译原理之美
数据结构与算法之美
架构:从0开始学架构一一10.15全栈工程师修炼指南设计模式之美前端:重学前端透视HTTPFlutterJS
小坚强_Sophia
·
2022-02-15 21:26
《
数据结构与算法之美
》16——散列表(三)为什么散列表和链表经常会一起使用?
有两种数据结构(散列表和链表)经常会被放在一起使用。前面的章节中有两个地方讲到散列表和链表的组合使用,分别是:04——链表13——跳表另外,Java中有一个容器LinkedHashMap也使用到散列表和链表。下面我们来看看这几个问题,散列表和链表是如何组合使用的。LRU缓存淘汰算法首先来回顾一下当时是如何通过链表实现LRU缓存淘汰算法的。当缓存空间不够,需要淘汰一个数据的时候,就直接将链表头部的结
大杂草
·
2022-02-15 18:39
数据结构与算法之美
-堆的应用
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2022-02-14 03:28
《
数据结构与算法之美
》23——堆和堆排序
今天我们来学习堆和堆排序。什么是堆堆是一种特殊的树,满足以下两点要求:堆是一个完全二叉树。堆中每个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。通过要求二可知,堆有两种类型,大顶堆和小顶堆:对于每个节点的值都大于等于子树中每个节点值的堆,叫作“大顶堆”。对于每个节点的值都小于等于子树中每个节点值的堆,叫作“小顶堆”。判断堆上图中,第1、2个是大顶堆,第3个是小顶堆,第4个不是堆。如何实
大杂草
·
2022-02-13 23:51
数据结构与算法之美
笔记——树与二叉树
摘要:树是一种非线性表结构,多用链表的方式存储,也可使用数组存储,以节点为数据存储单元,节点的链接表示父子关系,二叉树是树的其中一种,一个父节点最多可以有两个子节点,遍历节点的时间复杂度为。树(Tree)树长什么样这种数据结构称为树,那一定和现实中的树存在着某些联系。首先我们来回忆一下现实中的树是什么模样,树都由根长起,然后分叉为枝丫,枝丫顶端生长出叶子,数据结构中的树也是类似的样子,只不过将现实
Cloneable
·
2022-02-12 03:39
数据结构与算法之美
-跳表
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2022-02-11 19:49
数据结构与算法之美
-二叉查找树
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2022-02-10 18:36
数据结构与算法之美
笔记——线性排序
摘要:本章主要介绍三种线性排序,分别是「桶排序」「计数排序」「基数排序」,时间复杂度都为,但是只适合于某些特殊场景下的数据排序。本章主要会介绍三种「线性排序」算法,为何会称为线性排序?因为这三种排序算法的时间复杂度都是,时间复杂度是呈线性增长,所以称为线性排序。桶算法(BucketSort)原理桶算法的原理是将原数据的数据范围拆分为多个范围,这些小范围的空间就像桶一样,原数据根据所在范围被分配进相
Cloneable
·
2022-02-10 07:32
《
数据结构与算法之美
》10——排序(三)桶排序、计数排序、基数排序
桶排序概念桶排序,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的。应用场景桶排序比较适合用在外部排序中。所谓的外部排序就是数据存储在外部磁盘中,数据量比较大,内存有限,无法将数据全部加载到内存中。计数排序概念计数排序其实是桶排序的一种特殊情况。桶的个数n与最大值是k相等,省掉桶内排序的时间。计数排序中
大杂草
·
2022-02-05 02:42
02.数据结构之链表篇
文章为极客时间《
数据结构与算法之美
》的学习笔记。学习要点:空间换时间的设计思想。什么是链表?链表通过指针将一组零散的内存块串联在一起。把内存块称为链表的“结点”。
还是个初学者
·
2022-01-05 00:41
01.数据结构之数组篇
文章为极客时间《
数据结构与算法之美
》的学习笔记。什么是数组?数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。数组如何实现随机访问数组元素?
还是个初学者
·
2022-01-03 00:53
重温:数据结构与算法 - 开篇
很幸运接触到王争大佬《
数据结构与算法之美
》系列专栏,让自己又有了学习的动力。想起大学期间,辅导老师带着我们刷题参加比赛的那段日子,或许那是人生中编程最快乐的时光。
雷小歪
·
2021-12-08 18:20
极客时间《
数据结构与算法之美
》学习总结(Swift代码)
2021年7月7日更新最近面试,发现仅仅是学会专栏的文章还不够,最终还必须要去刷题(leetcode)。可以针对性的去刷要面试公司的题目,推荐一个网站:https://codetop.cc/home,祝愿大家都能拿到满意的offer。一、前言相信大家都有这种感觉,对于程序员来说,数据结构与算法特别重要。无数次想着拿下数据结构与算法这块知识,但迟迟没有行动。就我个人来说,一方面市面上数据结构与算法的
GLGeek
·
2021-11-07 23:41
数据结构之由斐波那契数引入大O时间复杂度表示法
(注释:整篇数据结构与算法文集,部分总结于王争的《
数据结构与算法之美
》和李明杰的《恋上数据结构与算法》,加上自己的理解,所以出了这个文集,仅做个人笔记记录所用。
陈盼同学
·
2021-10-09 10:59
一周新书榜:程序员最受关注的书有这样6本
1、
数据结构与算法之美
(全彩印刷)本书分为11章。第1章介绍复杂度分析方法。第2章介绍数组、链表、栈和队列这些基础的线性表数据结构。第3章介绍递归编程技巧、8种经典排序、二分查找及二分查找的变体问题。
人邮异步社区
·
2021-08-16 06:42
python
java
算法
css
程序员
《
数据结构与算法之美
》学习笔记-复杂度分析
1.什么是复杂度分析?数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。执行效率是算法一个非常重要的考量指标。使用执行时间和占用空间两个维度来评估数据结构和算法的性能。分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。2.为什么要进行复杂度分析?和性能测试相比,复杂度分析
geeklyc
·
2021-07-20 19:08
数据结构与算法之美
-递归
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2021-06-27 16:03
数据结构与算法之美
-链表
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2021-06-27 15:45
《
数据结构与算法之美
》19——二叉树(一)树、二叉树
概念树:是一种数据结构,像一颗倒挂的树。树的每个元素叫作“节点”;用来连续相邻节点之间的关系,叫作“父子关系”。关于高度(Height)、深度(Depth)、层(Level)节点的高度=节点到叶子节点的最长路径(边数)。节点的深度=根节点到这个节点所经历的边的个数。节点的层数=节点的深度+1。树的高度=根节点的高度。树的高度、深度、层关于二叉种种类:二叉树:每个节点最多有两个子节点的树。满二叉树:
大杂草
·
2021-06-26 08:39
数据结构与算法之美
笔记——散列表(下)
摘要:在实际生产中,散列表常常与链表结合使用,这种结合使链表操作效率得到提高,也使散列表无序的数据可以保持有序,可谓双赢。散列表与链表的互补链表查找操作的时间复杂度为,而插入和删除操作都需要基于查找操作,这也导致了原本高效的插入和删除执行效率下降。而散列表也不是十全十美,因为数据需要散列存储的原因,导致数据成为无序状态,需要数据排序显示或者查找某个范围内的数据时散列表就犯了难。但链表和散列表的优点
Cloneable
·
2021-06-25 09:05
实践自己设计考试
今天针对之前一段时间学习的《
数据结构与算法之美
》进行掌握程度的考试。考试内容就是分别将冒泡排序、选择排序、插入排序、归并排序和快速排序的程序算法,写出具体的代码。
终身成长日记
·
2021-06-25 06:09
【学习笔记】《
数据结构与算法之美
》入门篇
1.入门篇1.1.数据结构与算法的意义我们的目的是建立时间复杂度、空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,以此获得工作回报,实现你的价值,完善你的人生。优化代码及设计架构,提升代码性能(非功能性的需求)看待问题的深度,解决问题的角度锻炼大脑思考能力1.2.数据结构与算法的重点数据结构:一组数据的存储结构↑↓算法:操作数据的一组方法学习顺序:复杂
歧泽风
·
2021-06-25 01:44
数据结构与算法之美
-排序(三)
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2021-06-23 23:57
数据结构与算法之美
数据结构就是一组数据的存储结构,算法是操作数据的方法,数据结构是为算法服务的,算法作用在特定的数据结构之上。数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此,我们就需要一个考量效率和资源消耗的方法,这就是复杂度分析方法。在学习数据结构和算法的过程中,要学习它的「来历」、「自身的特点」、「适合解决的问题」以及「实际的应用场景」。1、数据结构和算法学习的精髓-复杂度分析2、最常用的、最
爱运动爱学习
·
2021-06-22 02:34
数据结构与算法之美
笔记(极客时间)
1.基础数据结构类型(1)线性结构数组、链表、栈、队列(2)非线性结构树、图2.数据结构变体数组扩展:散列表(散列表用的是数组支持按照下标随机访问数据的特性)链表扩展:跳表树扩展:二叉树(二叉查找树、平衡二叉树、红黑树、堆)、Trie树3.各种数据结构适用场景或算法应用(1)数组数组需要分配连续的内存空间,对内存有较大要求,但是可以利用CPU的缓存机制,查询执行速度快于链表。(2)链表不需要分配连
ack_Finding
·
2021-06-20 19:47
实际软件开发中,如何选择数据结构和算法
空间复杂度不能跟性能划等号复杂度不是执行时间和内存消耗的精确值代码的执行时间有时不跟时间复杂度成正比对于处理不同问题的不同算法,其复杂度大小没有可比性重视数据规模结合数据特征和访问方式区别对待IO密集、内存密集和计算密集善用语言提供的类,避免重复造轮子学会评估,不漫无目的地过度优化Benchmark基准测试-----
数据结构与算法之美
番茄沙司a
·
2021-06-10 07:41
数据结构与算法之美
-二叉树
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2021-06-09 05:23
20个经典数据结构与算法,300多幅算法手绘图解,带你领略算法之美
数据结构与算法之美
(全彩印刷)
数据结构与算法之美
(全彩印刷)本书全面、系统地讲解了常用、常考的数据结构和算法,并结合300多幅图和上百段代码,让内容
人邮异步社区
·
2021-06-07 10:29
数据结构
算法
人工智能
程序员
数据结构与算法之美
-数组
前言:本篇文章只是记录王争的
数据结构与算法之美
的学习笔记,写下来能强迫自己系统的再过一遍,加深理解。
code_ce
·
2021-06-06 23:58
数据结构与算法之美
——复杂度分析(上):如何分析、统计算法的执行效率和资源消耗
说明数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如果让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。而时间、空间复杂度分析就是用来衡量算法代码的执行效率。复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。为什么需要复杂度分析?事后统计法:把代码跑一遍,通过统计、监控得到算法的执行时间和内存大小。1.测试结果非常依赖测试
乔巴会飞
·
2021-06-06 18:40
为什么很多编程语言中数组是从0开始编号?
这个问题是王争老师的《
数据结构与算法之美
》提到的,说实话,这个问题之前还未认真思考过。在最初学习数组时,曾有过疑问,为什么下标是从0开始而不是从1开始编号。但那时这个疑问只是一闪而过,下一秒就没了。
故事外的人呀
·
2021-06-05 16:28
《
数据结构与算法之美
》——冒泡排序、插入排序、选择排序
排序,是每一本数据结构的书都绕不开的重要部分。排序的算法也是琳琅满目、五花八门。每一个算法的背后都是智慧的结晶,思想精华的沉淀。个人觉得排序算法没有绝对的孰优孰劣,用对了场景,就是最有的排序算法。当然,撇开这些业务场景,排序算法本身有一些自己的衡量指标,比如我们经常提到的复杂度分析。我们如何分析一个算法?排序算法的执行效率1、最好、最坏和平均情况的时间复杂度2、时间复杂度的系数、常数和低阶一般来说
Jackie_Zheng
·
2021-06-05 07:26
数据结构与算法之美
笔记——平衡二叉查找树
摘要:「平衡二叉查找树(BalanceBinarySearchTree)」用以解决二叉查找树因不平衡情况而导致的执行效率下降问题,不过为了提高整体操作的效率,基本上使用非严格的平衡二叉查找树,代表是「红黑树(Red-BlackTree)」。平衡才是美前面关于二叉查找树的文章已经提到过,平衡情况下二叉查找树的时间复杂度才是,但按照之前二叉查找树的插入、删除操作听之任之,不加以干预,二叉查找树的平衡性
Cloneable
·
2021-06-04 08:27
数据结构与算法之美
-散列表(下)
前言:散列表和链表经常会被放在一起使用,这是为什么呢?它们是如何组合起来使用的呢?1.散列表和链表为什么经常组合使用?散列表虽然支持非常高效的插入、删除、查找操作,但是散列表中的数据都是散列函数打乱之后无规律存储的,想要顺序遍历的话肯定不行,所以我们将散列表和链表(跳表)结合在一起使用,这样就可以按顺序遍历散列表中的数据了。2.如何组合使用2.1LRU缓存淘汰算法单链表实现LRU缓存淘汰算法:当要
code_ce
·
2021-06-04 05:43
《
数据结构与算法之美
》笔记009
43.|拓扑排序:如何确定代码源文件的编译依赖关系-开始编译器如何通过源文件两两之间的局部依赖关系,确定一个全局的编译顺序:使用'图'这种数据结构的'拓扑排序算法'解决.什么是拓扑排序多个元素,部分或全部元素的两两依赖关系已经确定,如何安排一个序列,能够满足上述元素的两两依赖关系.很多时候,拓扑排序的序列不是唯一的,因为可能不是所有元素之间都具有依赖关系.c26d0f472d9a607c0c4eb
幻海流心
·
2021-05-18 02:10
数据结构与算法之美
笔记——复杂度分析(上)
前言关于算法的笔记我调整了一下书写的方式,接下来的笔记我都会以总结开篇,通过自己对总结的发问倒推详情,最后以解答老师的思考题结束。摘要:一段代码所需执行时间和执行时需要的存储空间在算法中有统一的评价标准,被称为「复杂度」,分为「(渐进)时间复杂度」和「(渐进)空间复杂度」,都以大O表示法表示。对于上述摘要,初看的人会对几个名词疑惑不解。时间复杂度和空间复杂度是什么,大O表示法如何表示复杂度,接下来
Cloneable
·
2021-05-17 10:42
链表
图片来源于极客时间-
数据结构与算法之美
常见的链表:单链表、循环链表、双向链表以及双向循环链表。单链表在这里我们把每一个存放数据元素的内存块成为一个“节点”。每个节点都有数据域data和
一只揣着梦想远行的飞鸟
·
2021-05-12 20:07
20181121_ARTS_W7
Algorithm这周看了下
数据结构与算法之美
专栏的排序部分,归纳总结了几类基本排序的区别,并实现了相关的代码。
活出野性的自己
·
2021-04-30 07:57
数据结构与算法之美
专栏笔记_数组链表栈篇
摘要文章目录摘要我们所熟识的数组1.1从一个问题开始1.2数组概述1.3低效的插入与删除1.4令人头疼的数组越界问题1.5容器可以代替数组吗?1.6面试常考的练习题集锦1.7小练习二.链表知识大派送摘要2.1从一个问题开始2.2五花八门的链表结构2.2.1单链表2.2.2循环链表2.2.3双向链表2.2.4双向链表高效在哪呢2.3链表VS数组性能大比拼2.4如何轻松的写出正确的链表代码2.5面试常
差天半子
·
2021-02-02 18:50
算法
数组
算法
链表
栈
部分优秀博客主链接汇总(linux c/c++ java go php android ios 前端 j2ee windows linux 算法 ACM AI 深度/机器学习 opencv nlp)
chenyu.blog.csdn.net/article/details/79449026pudn阿甘兄前端服务端底层移动端大数据云计算AI培训机构的课程差不多就这一套了大数据AINLP高等数学LeetCode、《
数据结构与算法之美
Devour_
·
2021-01-14 15:06
练级攻略
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他