数据结构
文章平均质量分 86
梦开始的地方丶
这个作者很懒,什么都没留下…
展开
-
2022-02-21 八、查找(上:线性、二分)
查找(上:线性、二分)1. 线性查找1.1 基本介绍1.2 设计思路1.3 代码实现2. 二分查找2.1 基本介绍2.2 设计思路-单数版2.3 代码实现2.4 设计思路2.5 代码实现1. 线性查找1.1 基本介绍一种简单的查找方式,从头到尾遍历,直到找到指定数字。1.2 设计思路for/while循环遍历数组,找到指定数字则返回下标,否则返回-1。1.3 代码实现public class Demo24 { public static void main(String[] a原创 2022-02-21 16:50:10 · 589 阅读 · 1 评论 -
2022-2-16 七、排序(下:归并、基数)
排序(下)1. 归并排序1.1 基本介绍1.2 设计思路1.3 代码实现2. 基数排序2.1 基本介绍2.2 设计思路2.3 代码实现1. 归并排序1.1 基本介绍归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。1.2 设计思路首先图片展示一下什么是分治思想1、可以看到原创 2022-02-16 14:51:36 · 118 阅读 · 0 评论 -
2021-10-28 六、排序(中:简单插入、希尔、快排)
排序(中)1. 简单插入排序1.1 基本介绍1.2 设计思路1.3 代码实现2. 希尔排序2.1 基本介绍2.2 设计思路2.3 代码实现(交换法)2.4 代码实现(移位法)3. 快速排序3.1 基本介绍3.2 设计思路3.3 代码实现(交换法)3.4 代码实现(插值法)1. 简单插入排序1.1 基本介绍对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。1.2 设计思路首先把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个原创 2021-10-29 22:27:28 · 370 阅读 · 0 评论 -
2021-10-26 五、排序(上:冒泡、简单选择)
排序(上)1. 排序算法介绍2. 算法的时间复杂度2.1 度量一个程序(算法)执行时间的两种方法2.2 什么是时间频度2.3 时间频度的忽略项2.3.1 常数项2.3.2 低次项2.3.3 系数2.4 时间复杂度2.4.1 基本介绍1. 排序算法介绍基本概要排序是将一组数据,依指定的顺序进行排列的过程。分类内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。2. 算法的时间复杂度2.1 度量原创 2021-10-27 22:02:28 · 131 阅读 · 0 评论 -
2021-10-21 四、递归
递归1. 递归是什么1.1 递归的运行说明1.2 递归的应用场景1.3 递归必须遵守的规则2. 递归回溯算法(迷宫问题)2.1 设计思路2.2 代码实现2.3 完整代码2.4 修改迷宫行走策略3. 八皇后问题1. 递归是什么递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。1.1 递归的运行说明根据JVM的运行规则:当程序执行到一个方法时,就会在栈空间中开辟一块新的栈帧空间;每个空间中都是互相独立的,也就是说数据(局部变量)不原创 2021-10-25 21:38:04 · 320 阅读 · 0 评论 -
2021-10-18 三、栈
栈1. 栈的定义1.1 数组实现栈的设计思路1.2 代码实现1.3 栈的应用场景2. 栈实现综合计算器2.1 设计思路2.2 代码实现3. 波兰表达式3.1 简介1. 栈的定义栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top);另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈原创 2021-10-20 21:15:55 · 503 阅读 · 0 评论 -
2021-10-15 二、链表
链表1. 链表的定义2. 单向链表的基本说明2.1 带头单链表在内存中的存储2.2 带头单链表的逻辑结构2.3 无序链表设计思路2.4 代码实现2.5 出现的问题2.6 有序链表设计思路2.7 代码实现1. 链表的定义链表是有序的列表,是以节点的方式在内存中来存储的,是链式存储。每个节点最少都包含两个域:data 域(存放数据),next 域(指向下一个结点的地址)。链表的各个节点不一定是连续存储。链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定。一定要学好链表,他是后面数据结原创 2021-10-16 21:05:49 · 298 阅读 · 0 评论 -
2021-10-13 一、数组与队列
数组与队列1. 稀疏数组1.1 何为稀疏数组1.2 应用场景1.3 图文解析1.4 代码实现与思路1. 稀疏数组1.1 何为稀疏数组稀疏数组,首先把稀疏拆出来,理解为写程序的你,头发日渐稀疏,渐少。比如一个棋盘,可以用二位数组表示,这个棋牌(只有三种数据,0为没有棋子,1为黑棋,2为白棋),我们可以只提取出黑白棋的位置构成稀疏数组。1.2 应用场景比如 一些量大,且多数为重复值的时候,可以使用(棋牌,地图等等)1.3 图文解析首先创建新的数组来记录数组有几行、几列、有多少不同的值原创 2021-10-15 22:35:36 · 239 阅读 · 0 评论 -
2021-10-13 数据结构篇(Java)目录
数据结构篇(Java)首先放上视频地址https://www.bilibili.com/video/BV1E4411H73v.下面的内容取自尚硅谷的Java基础教程,并加上自己的部分理解。标题地址原创 2021-10-13 23:04:38 · 158 阅读 · 0 评论