首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Yerlang
掘友等级
Java 开发工程师
天行健 地势坤 自强不息 厚德载物
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
3
文章 3
沸点 0
赞
3
返回
|
搜索文章
最新
热门
算法数据结构:二叉树
关于树,有几个比较常用的概念你需要掌握,那就是:根节点、叶子节点、父节点、子节点、兄弟节点,还有节点的高度、深度、层数,以及树的高度。 二叉树,顾名思义,每个节点最多有两个子节点,分别是左子节点和右子节点。不过,一个二叉树中并不要求每个节点都必须有两个节点,有的节点只有左子节点…
算法数据结构:链表
相对比数组,链表是一种稍微复杂一点的数据结构,其学习成本也要比数组要高一些。数组和链表是两个非常基础,且非常常用的数据结构。而链表的结构也是五花八门的,本篇文章主要介绍:单链表、双向链表和循环链表。 从图中可以发现,数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们…
算法数据结构:排序总结
比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(N*logN),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 时间复杂度O(N*log…
算法数据结构:计数排序和基数排序
计数排序(Counting Sort)不是基于比较的排序算法,是一种特殊的桶排序。其核心在于将输入的数据转化为键存储在额外开辟的数据空间中。 计数排序只能用在数据范围不大的场景中,如果数据范围 k 比数据要排序的数据 n 大很多,就不适合计数排序了。而且,计数排序只能给非负整数…
算法数据结构:快速排序
快速排序算法(Quick Sort)利用的也是分治思想。其基本思想:如果要排序数组中小标从[L, R]之间的一组数据,我们选择[L, R]之间任意一个数据作为 pivot(分区点)。
算法数据结构:归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子集合合并,得到完全有序的集合;即先使每个子集合有序,再使子集合间有序。若将两个有序集合合并成一个有序集合,称为 2-路归并。 在一个数组中…
算法数据结构:堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆结构,在前面有单独的介绍过,可以进去了解一下。这种排序方法的时间复杂度非常稳定,是 $O\left(n*\log n\right)$,并且它还是原地排序。 堆排序的过程,大致分解成两个大的步骤,建堆和排序。
算法数据结构:选择排序
选择排序(Selection Sort)算法的思路类似插入排序,也分已排区间和未排区间。但是选择排序每次会从未排序区间中找到最小元素,将其放到已排序区间末尾。以此类推,直到所有元素均排序完毕。 选择排序是一种不稳定的原地排序算法。 很明显,如果 arr 长度为 N,每一步常数操…
算法数据结构:插入排序、冒泡排序、选择排序
首先,我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入排序算法(Insertion Sort)的核心思想,是取未排序区间中的元素,在已排序区间中找到一个合适的插入位置,将其插入,并保证已排序区间一直有序。重复这个过程…
算法数据结构:冒泡排序
冒泡排序(Bubble Sort)算法,只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。 其中,a、b、c 都是常数,所…
下一页
个人成就
文章被点赞
26
文章被阅读
15,378
掘力值
555
关注了
2
关注者
8
收藏集
0
关注标签
83
加入于
2020-05-05