首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法(Java实现)
斑鸠喳喳
创建于2024-03-02
订阅专栏
从零开始学算法
等 1 人订阅
共13篇文章
创建于2024-03-02
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
快速排序
快速排序首先会在序列中随机选择一个基准值(pivot),然后将除了基准值以外的数分为“比基准值小的数”和“比基准值大的数”这两个类别
数组简介 Array
数组(Array)是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。动态扩容
数组 之 双指针法
双指针法,顾名思义就是用两个指针遍历数组,有快慢指针和前后指针两种实现方式:**快慢指针**,两个指针都从头向尾遍历数组,只不过快指针是为了检索,慢指针用于记录
数组 之 双指针法2
更多双指针解法:有序数组的平方、合并两个有序数组、反转字符串、反转字符串II、反转字符串中的单词 III
数组 之 简单排序
这篇文章讲一讲数基本的排序算法,看一下快慢指针在排序算法中的应用。 准确的说,这并不是快慢指针的应用,但使用快慢指针的角度可以更好地理解下面三种排序算法
链表简介 LinkedList
链表也是线性数据结构,和数组(一块连续的内存空间)不同的是,链表是一组零散的内存块,内存块之间使用“指针”相连。
链表相关题目
链表相关算法题:两两交换链表中的节点、删除链表的倒数第N个节点、反转链表、链表相交、环形链表、环形链表II
栈简介 Stack
栈也是一种数据呈线性排列的数据结构,不过在这种结构中,我们只能访问最新添加的数据。栈就像是一摞书,拿到新书时我们会把它放在书堆的最上面,取书时也只能从最上面的新书开始取。
栈相关题目
关于栈的一些匹配问题:括号匹配(有效的括号)、重复项匹配(删除字符串中的所有相邻重复项)、逆波兰表达式求值(后缀表达式)
队列简介 Queue
队列本质 队列跟栈一样,也是一种操作受限的线性表数据结构,只不过栈是是后进先出,队列是先进先出。循环队列、双端队列。
递归算法 Recursion
`Recursion` 中文翻译很信达雅,递是将问题递出去,在递出的过程中问题被不断拆分成子问题,归是答案回归,在归的过程中,子问题的答案被不断合并
二分查找
二分查找 Binary Search 二分查找,也叫折半查找算法,它只能查找已经排好序的数据。 二分查找通过比较数组中间的数据与目标数据的大小,可以得知目标数据是在数组的左边还是右边。
归并排序
归并排序会把序列分成长度相同的两个子序列,直至无法继续往下拆分(也就是每个子序列中只有一个数据),这是`递`的部分。 当子序列无法继续往下分,就对子序列进行**归并**(把两个排好序的子序列合并成一