首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
码二说之数据结构与算法
哎哟迪奥
创建于2022-03-22
订阅专栏
数据结构与算法的实现及原理的文章解析。
等 6 人订阅
共14篇文章
创建于2022-03-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
我明白了,排序算法基础
前言 O(n^2)的排序算法并不是最优的,最优的排序算法是 O(nlogn) 。 O(n^2)的排序算法相对是比较基础的,因为它是最简单的求解思路,在面临一个问题的时候,都会先尝试用最简单的方法去解决
我学会了,封装自己的专属线段树SegmentTree
前言 堆(Heap)是一种树结构,线段树(Segment Tree)也是一种树结构,它也被叫做区间树(Interval Tree)。 还是那句老话:光看文章能够掌握两成,动手敲代码、动脑思考、画图才可
我学会了,封装自己的优先队列PriorityQueue
前言 优先队列本身就是一种队列。 普通队列:先进先出、后进后出,如排队买票吃饭一样。 优先队列:出队顺序和入队顺序无关,和优先级相关。如去医院看病,床位非常的紧张,需要排队才能去做手术的话,此时做手术
我学会了,封装自己的专属堆Heap
前言 堆是一个特殊的树结构。 在前面的文章中,使用了二分搜索树实现了集合和映射这两个相对来讲更加高层的数据结构。树这种数据结构本身在计算机科学领域占有重要的地位,树这种形状本身可以产生非常多的拓展,在
我学会了,封装自己得专属映射Map
前言 映射是高层的数据结构,高层的数据结构还有栈和队列,这种数据结构更像是定义好了这种数据结构的相应的使用接口。 有了这些使用的接口包括这些数据结构本身所维持的一些性质,就可以非常容易的把它们放入一些
我学会了,封装自己的专属集合Set
前言 集合是高层的数据结构,高层的数据结构还有栈和队列,这种数据结构更像是定义好了这种数据结构的相应的使用接口。 有了这些使用的接口包括这些数据结构本身所维持的一些性质,就可以非常容易的把它们放入一些
我学会了,封装自己的专属二分搜索树篇(下)
前言 上篇二分搜索树的文章中,认识了树这种高效的结构,对递归也有更深层次的认识,也体会到了二分搜索树前中后序递归遍历的思想,也就是深度优先遍历。二分搜索树的遍历,对每一个节点都有三次的访问机会。前序遍
我学会了,封装自己的专属二分搜索树篇(上)
前言 线性数据结构是把所有的数据排成一排,树结构是倒立的树,由一个根节点延伸出很多新的分支节点。在计算机科学领域很多问题的处理,当你将数据使用树结构进行存储后,出奇的高效。 这篇文章讲的二分搜索树(B
我明白了,通过链表来思考递归
前言 上篇文章已经从底层完整实现了一个单链表这样的数据结构,并且也依托链表这样的数据结构实现了栈和队列,在实现队列的时候对链表进行了一些改进。 递归不光用于树这样的结构中还可以用在链表这样的结构中,链
我学会了,封装自己的专属链表
前言 链表是最基础的动态数据结构。 动态数组、栈、队列,底层都是依托静态数组,靠 resize 解决固定容量问题。它们所谓的动态,是从用户的角度上来看的。 链表是真正的动态数据结构,它是数据结构中的一
我明白了,浅聊数据结构(和算法)
数据结构是计算机领域专业必学的知识点,因为数据结构研究的就是数据如何在计算机中进行组织和存储,从而高效的获取数据或者修改数据。 有时可以让我们根据不同的应用,灵活选择最合适的数据结构继而解决相应的问题
我学会了,封装自己的专属数组
前言 你可以把数组想象成是把数据码成一排进行存放,在强语言中数据的类型是确认的,而在弱语言中数据的类型是不确认的,但是也有方法可以进行确认。js 中的数组是有局限性的。 还是那句老话:光看文章能够掌握
我学会了,通过封装来学习栈
前言 栈是一种后进先出的数据结构,Last In First Out(LIFO),看似很简单但其实是应用非常广泛的数据结构。就像你先往饼干罐里装饼干,要吃的时候往外拿。 还是那句老话:光看文章能够掌握
我学会了,通过封装来学习队列
前言 队列是一种先进先出的数据结构(先到先得),First In First Out(FIFO) 先进先出,就像你去银行取钱。 还是那句老话:光看文章能够掌握两成,动手敲代码、动脑思考、画图才可以掌握