首页
AI Coding
数据标注
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
文章被阅读
17,966
掘力值
561
关注了
2
关注者
8
收藏集
0
关注标签
83
加入于
2020-05-05