![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
尚硅谷韩老师数据结构和算法
文章平均质量分 85
呵呵呵我
这个作者很懒,什么都没留下…
展开
-
七、排序算法时间复杂度和空间复杂度介绍
文章目录一、排序算法的介绍二、排序的分类三、算法的时间复杂度3.1 度量一个程序(算法)执行时间的两种方法3.2 时间频度3.3 时间复杂度3.4 常见时间复杂度3.5 平均时间复杂度和最坏时间复杂度四、算法的空间复杂度一、排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。二、排序的分类1)内部排序:指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。2) 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储(文件等原创 2022-01-13 21:46:29 · 763 阅读 · 0 评论 -
八、查找算法
文章目录一、线性查找算法二、二分查找算法2.1 递归法2.2 非递归法2.3 扩展三、插值查找算法四、斐波那契(黄金分割)查找算法4.1原理4.2 代码实现一、线性查找算法线性查找算法,即按照数组的顺序一个个进行比较直到找到目标值为止。例:有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值:/** * 线性查找 */public class SeqSearch { public stat原创 2021-12-27 21:56:23 · 137 阅读 · 0 评论 -
六、递归与八皇后问题
文章目录一、递归场景二、递归的概念三、递归调用机制四、递归解决什么样的问题五、递归需要遵守的重要规则六、递归迷宫问题6.1 问题描述6.2 代码实现及结果6.3 对迷宫问题的讨论七、递归八皇后问题(回溯算法)7.1 问题描述7.2八皇后问题算法思路分析7.3 代码实现一、递归场景看个实际应用场景,迷宫问题(回溯), 递归(Recursion)二、递归的概念简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。三、递归调用机制我列原创 2021-08-16 17:28:50 · 413 阅读 · 0 评论 -
五、栈与逆波兰表达式(中缀转后缀)
文章目录一、栈的介绍二、栈的代码实现2.1 思路2.2 代码实现三、栈实现综合计算器(中缀表达式)四、逆波兰计算器五、中缀表达式转后缀一、栈的介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,原创 2021-04-19 20:54:54 · 157 阅读 · 0 评论 -
四、单链表双向链表及环表(约瑟夫问题)的应用及代码实现
文章目录1 链表的介绍2 单链表的应用实例2.1 实例分析2.2 代码实现3 双向链表的应用实例3.1 双向链表的操作分析3.2 双向链表的代码实现4 单向环形链表应用场景及介绍5 约瑟夫问题5.1 约瑟夫问题的链表实现5.2 约瑟夫问题的循环实现1 链表的介绍链表是有序的列表,但是它在内存中是存储如下:小结上图:链表是以节点的方式来存储,是链式存储每个节点包含 data 域,next 域:指向下一个节点.如图:发现链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根原创 2021-04-11 21:33:33 · 218 阅读 · 0 评论 -
三、数组队列和循环队列的思路及代码实现
文章目录1、队列的介绍2、数组队列的模拟思路3、数组队列的代码实现4、循环队列的模拟思路5、循环队列的代码实现1、队列的介绍队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)2、数组队列的模拟思路1、队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中maxSize 是该队列的最大容量。2、因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front原创 2021-04-06 20:36:37 · 180 阅读 · 1 评论 -
二、稀疏数组使用场景及代码实现
文章目录1、稀疏数组(sparsearray )实际需求2、稀疏数组基本介绍3、应用实例3.1、代码实现3.1、结果显示1、稀疏数组(sparsearray )实际需求编写的五子棋程序中,有存盘退出和续上盘的功能。分析问题:因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据,所以此处可以使用稀疏数组。2、稀疏数组基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1、记录数组一共有几行几列,有多少个不同的值2原创 2021-04-04 18:00:24 · 252 阅读 · 1 评论 -
一、Java数据结构与算法概述
写在前面:大一的时候学过数据结构和简单的算法,但是已经忘得差不多了,最近因面试多次惨败在数据结构和算法上,顿时苦不堪言,于是决定跟着尚硅谷韩老师重新学习java数据结构与算法。1、整套笔记参考资料尚硅谷Java数据结构与java算法(Java数据结构与算法)2、数据结构和算法的重要性算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算一般来讲 程序会使用了内存计算框架(比如 Spark)和缓存技术(比如 Redis 等)来优化程序,再深入的思考一下,这些计算框架和缓存技术, 它.原创 2021-04-04 17:11:57 · 175 阅读 · 0 评论