![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构与算法
文章平均质量分 65
haiy516
这个作者很懒,什么都没留下…
展开
-
剑指Offer题目汇总(持续更新中...)
目录(1)剑指Offer-03 数组中重复的数字(2)剑指Offer-04 二维数组中的查找(3)剑指Offer-05 替换空格1、知识点2、代码实现(4)剑指Offer-06 从尾到头打印链表(5)剑指Offer-07 重建二叉树 (1)剑指Offer-03 数组中重复的数字 (2)剑指Offer-04 二维数组中的查找 (3)剑指Offer-05 替换空格 1、知识点 2、代码实现 class Solution { public String replaceSpace(String s) {原创 2021-05-14 16:08:04 · 1676 阅读 · 0 评论 -
Java中栈与队列的实现
Java中栈的实现有两个方法:一个是用java本身的Stack类;另一个是借用LinkedList来间接实现Stack。 一、使用Java本身的Stack类: 1、Stack类的API设计: 构造方法:Stack() 成员方法: (1)入栈:push() (2)出栈:pop() 二、使用LinkedList实现: 1、构造方法:LinkedList< Integer > stack = new LinkedList< Integer >(); 2、成员方法: (1)入栈:addF原创 2021-05-07 10:40:03 · 266 阅读 · 0 评论 -
算法与数据结构(一)——二叉树(全)
一、二叉树定义: 二叉树是树结构的一种,至于两者的定义看图即可: 树 二叉树 二、二叉树的遍历 (1)前序遍历:先访问根节点,再访问左子树,最后访问右子树(中左右) (2)中序遍历:先访问左子树,再访问根节点,最后访问右子树(左中右) (3)后序遍历:先访问左子树,再访问右子树,最后访问根节点(左右中) 【注意】在进行遍历的时候需要用到递归的思想,例如要访问左子树,当左子树仍是一个二叉树时,便需要将其当做新的二叉树进行遍历 三、二叉查找树的代码实现 (1)根节点的实现 ...原创 2021-04-26 10:53:07 · 220 阅读 · 0 评论 -
快速排序(Java实现)
一、原理介绍 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 具体实现过程如图所示: 二、代码实现 实现快速排序的主要思想是切分和迭代,其中实现切分是关键,也是一个难点。实现切分的步骤如下: (1)以数组的首元素为基准值,使用两个指针分别指向数组的头部和尾部; (2)先将右指针向左移动,寻找一个原创 2021-03-18 21:28:46 · 108 阅读 · 0 评论 -
归并排序:递归+归并(Java实现)
一、原理介绍 并归排序是以并归这个简单的操作为基础的,并归指的是将两个不同的有序数组合并为一个有序数组。因此我们在对数组进行排序时有了新的方法:先将数组分成两部分,再对左子组和右子组分别进行排序,最后将这两个有序子组进行并归操作即可,这边是并归排序的基本思想。 另外,在对每一个子组进行排序时,同样可以使用并归排序,这便用到了递归的思想。因此并归排序的核心就是并归+递归。下图是并归排序的示意图: 二、代码实现 ...原创 2021-03-18 10:09:35 · 312 阅读 · 2 评论 -
通过Hashmap集合统计字符串中每一个字符出现的次数
一、要求 通过键盘输入一个字符串,统计其中每一个字符出现的次数 二、思路 1.使用Scanner获取用户输入的字符串 2.创建Map集合,key是字符串中的字符,value是字符的个数 3.将字符串转化为字符数组,通过增强for循环获取每一个字符 4.使用获取到的字符,去Map集合判断key(该字符)是否存在 存在: 通过字符(key),获取value(字符个数) value++ put(原创 2020-11-01 11:55:00 · 457 阅读 · 0 评论