算法与数据结构
文章平均质量分 79
算法和数据结构有多重要?
他们的影响无处不在!
ruan_luqingnian
这个作者很懒,什么都没留下…
展开
-
java数据结构与算法—“堆排序”
文章目录java数据结构与算法—“堆排序”堆排序堆排序基本介绍堆排序基本思想堆排序步骤图解说明代码实现java数据结构与算法—“堆排序”堆排序堆排序基本介绍堆排序是利用堆这种数据结构而设计的一种排序算法, 堆排序是一种选择排序, 它的最坏, 最好, 平均时间复杂度均为 O(nlogn), 它也是不稳定排序。堆是具有以下性质的完全二叉树: 每个结点的值都大于或等于其左右孩子结点的值, 称为大顶堆, 注意 : 没有要求结点的左孩子的值和右孩子的值的大小关系。每个结点的值都小于或等于其左右孩子结点的原创 2021-06-07 13:48:19 · 216 阅读 · 2 评论 -
java数据结构之“树结构的基础部分”
文章目录java数据结构之“树结构的基础部分”二叉树为什么需要树这种数据结构数组存储方式的分析链式存储方式的分析树存储方式的分析树示意图树的常用术语二叉树的概念二叉树遍历的说明二叉树遍历应用实例(前序,中序,后序)应用实例的说明和思路代码实现二叉树-查找指定节点代码实现二叉树-删除节点要求java数据结构之“树结构的基础部分”二叉树为什么需要树这种数据结构数组存储方式的分析优点: 通过下标方式访问元素, 速度快。 对于有序数组, 还可使用二分查找提高检索速度。缺点: 如果要检索具体某个值原创 2021-06-03 20:37:23 · 524 阅读 · 7 评论 -
java数据结构与算法之哈希表
文章目录java数据结构与算法之哈希表哈希表(散列)哈希表的基本介绍google 公司的一个上机题:代码实现java数据结构与算法之哈希表哈希表(散列)看一个实际需求, google 公司的一个上机题:有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址…),当输入该员工的 id 时,要求查找到该员工的 所有信息要求: 不使用数据库,尽量节省内存,速度越快越好=>哈希表(散列)哈希表的基本介绍散列表(Hash table, 也叫哈希表) , 是根据原创 2021-06-02 13:53:21 · 201 阅读 · 0 评论 -
java数据结构与算法之“查找算法”
文章目录java数据结构与算法之“查找算法”查找算法介绍线性查找算法代码实现二分查找算法二分查找二分查找算法思路二分查找代码实现插值查找算法插值算法原理介绍举例说明插值查找算法 1-100 的数组代码实现注意事项斐波那契(黄金分割法)查找算法斐波那契(黄金分割法)查找基本介绍:斐波那契(黄金分割法)原理:对 F(k-1)-1 的理解:代码实现java数据结构与算法之“查找算法”查找算法介绍在 java 中, 我们常用的查找有四种:顺序(线性)查找二分查找/折半查找插值查找斐波那契查找原创 2021-06-01 09:00:36 · 514 阅读 · 0 评论 -
java数据结构与算法之”排序算法“
文章目录java数据结构与算法之”排序算法“排序算法介绍排序的分类冒泡排序基本介绍演示冒泡过程的例子(图解)冒泡排序应用实例代码实现选择排序基本介绍选择排序思想:选择排序应用实例:代码实现插入排序插入排序法介绍:插入排序法思想:插入排序思路图:插入排序法应用实例:代码实现希尔排序简单插入排序存在的问题希尔排序法介绍希尔排序法基本思想希尔排序法的示意图希尔排序法应用实例:代码实现快速排序快速排序法介绍:快速排序法示意图:快速排序法应用实例:代码实现归并排序归并排序介绍:归并排序思想示意图 1-基本思想:归并排原创 2021-05-30 19:38:10 · 421 阅读 · 4 评论 -
java数据结构与算法之”时间/空间复杂度“
文章目录java数据结构与算法之”时间/空间复杂度“排序算法介绍排序的分类算法的时间复杂度度量一个程序(算法)执行时间的两种方法时间频度基本介绍举例说明举例说明-忽略常数项举例说明-忽略低次项举例说明-忽略系数时间复杂度常见的时间复杂度说明举例平均时间复杂度和最坏时间复杂度算法的空间复杂度简介基本介绍java数据结构与算法之”时间/空间复杂度“排序算法介绍排序也称排序算法(Sort Algorithm), 排序是将一组数据, 依指定的顺序进行排列的过程。排序的分类内部排序指将需要处理的原创 2021-05-30 17:08:29 · 281 阅读 · 1 评论 -
Java数据结构与算法之“递归“与“八皇后“问题
文章目录Java数据结构与算法之‘‘递归’’与‘‘八皇后’’问题递归应用场景递归的概念递归调用机制代码演示递归能解决什么样的问题递归-迷宫问题迷宫问题代码实现对迷宫问题的讨论递归-八皇后问题(回溯算法)八皇后问题介绍八皇后问题算法思路分析示意图八皇后问题算法代码实现Java数据结构与算法之‘‘递归’’与‘‘八皇后’’问题递归应用场景看个实际应用场景, 迷宫问题(回溯), 递归(Recursion)递归的概念简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决原创 2021-05-28 16:30:13 · 479 阅读 · 1 评论 -
java数据结构之“栈“
数据结构之"栈"数据结构之"栈"栈的一个实际需求栈的介绍栈的应用场景栈的快速入门用数组模拟栈的使用实现思路分析,并画出示意图代码实现栈实现综合计算器(中缀表达式)使用栈来实现综合计算器思路分析(图解)代码实现代码实现逆波兰计算器我们完成一个逆波兰计算器, 要求完成如下任务:思路分析代码实现中缀表达式转换为后缀表达式具体步骤如下:举例说明:如图代码实现中缀表达式转为后缀表达式思路分析代码实现数据结构之"栈"栈的一个实际需求请输入一个表达式计算式:[7 * 2 * 2-5+1-5+3-3] 点击计算【如原创 2021-05-27 13:34:24 · 208 阅读 · 0 评论 -
单向环形链表和约瑟夫问题
单向环形链表和约瑟夫问题单向环形链表和约瑟夫问题单项环形链表应用场景单向环形列表介绍Josephu 问题约瑟夫问题的示意图描述提示约瑟夫问题-创建环形链表的思路图解约瑟夫问题-小孩出圈的思路分析图Josephu 问题的代码实现单向环形链表和约瑟夫问题单项环形链表应用场景Josephu(约瑟夫、 约瑟夫环) 问题Josephu 问题为: 设编号为 1, 2, … n 的 n 个人围坐一圈, 约定编号为 k(1<=k<=n) 的人从 1 开始报数, 数到 m 的那个人出列, 它的下一位又原创 2021-04-21 10:59:13 · 313 阅读 · 0 评论 -
数据结构之双链表
文章目录数据结构之双链表双向链表的操作分析和实现管理单向链表的缺点分析:分析 双向链表的遍历, 添加, 修改, 删除的操作思路===》代码实现数据结构之双链表双向链表的操作分析和实现管理单向链表的缺点分析:单向链表, 查找的方向只能是一个方向, 而双向链表可以向前或者向后查找。单向链表不能自我删除, 需要靠辅助节点 , 而双向链表, 则可以自我删除, 所以前面我们单链表删除时节点, 总是找到 temp,temp 是待删除节点的前一个节点(认真体会).分析了双向链表如何完成遍历, 添加, 修改和原创 2021-04-20 22:02:51 · 191 阅读 · 0 评论 -
数据结构之单链表
数据结构之链表数据结构之链表链表链表(LinkeList)介绍单链表(带头结点) 逻辑结构示意图如下单链表的应用实例代码实现数据结构之链表链表链表(LinkeList)介绍链表是有序的列表,但在内存中是如下存储的。小结上图:链表是以节点的方式来存储的,是链式存储每个节点包含data域,next域:指向下一个节点如图:发现**发现链表的各个节点不一定是连续存储**链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定。单链表(带头结点) 逻辑结构示意图如下单链表的原创 2021-04-18 15:13:29 · 346 阅读 · 0 评论 -
数据结构之队列
数据结构之队列数据结构之队列队列队列的一个使用场景队列介绍数组模拟队列思路代码实现存在问题并优化数组模拟环形队列分析说明代码实现数据结构之队列队列队列的一个使用场景银行排队案例队列介绍队列是一个有序列表,可以用数组或者链表来实现。遵循==先入先出==原则,即:先存入队列的数据,要先取出。示意图:数组模拟队列思路队列本身是有序列表, 若使用数组的结构来存储队列的数据, 则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。因为队列的输出、 输入是分别从前后端来原创 2021-04-17 11:02:35 · 251 阅读 · 0 评论 -
数据结构之稀疏数组
数据结构之稀疏数组数据结构之稀疏数组稀疏数组(sparsearray )先看一个实际需求基本介绍应用实例实现代码数据结构之稀疏数组稀疏数组(sparsearray )先看一个实际需求编写的五子棋程序中,有存盘和续上局的功能分析问题因为改二维数组的很多值是默认值0,因此记录了很多没有意义的数据由此产生稀疏数组基本介绍当一个数组中大部分元素为0或者同一个值时,可以考虑使用稀疏数组来保存数据稀疏数组的处理方法是:记录数组一共有几行几列,有多少不同的值具有把不同值原创 2021-04-16 19:12:49 · 364 阅读 · 0 评论