![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构与算法
详解数据结构与算法
Dkui
夯实根基,蓄积勃发。
展开
-
二叉树——删除节点
二叉树-删除节点思路分析原创 2020-02-28 23:28:26 · 730 阅读 · 0 评论 -
二叉树-查找指定节点
二叉树-查找指定节点要求二叉树-查找指定节点思路分析原创 2020-02-26 19:48:06 · 3309 阅读 · 0 评论 -
二叉树
为什么需要树这种数据结构数组存储方式分析图解以ArrayList为例,看看是怎样进行数组扩容-代码package com.tree;import java.util.ArrayList;import java.util.Arrays;public class Test { @SuppressWarnings("unused") public static vo...原创 2020-02-17 21:06:56 · 149 阅读 · 0 评论 -
哈希表
哈希表的基本介绍哈希表流程图哈希表(散列)——Google上机题哈希表管理雇员思路分析代码表示一个雇员package com.hashtab;public class HashTabDemo { public static void main(String[] args) { }}//表示一个雇员class Emp{ public int i...原创 2020-02-16 21:54:04 · 147 阅读 · 0 评论 -
查找算法(排序(线性)查找,二分查找/折半查找,插值查找,斐波那契查找)
查找算法java中,我们常用的查找有四种: 1. 顺序(线性)查找 2. 二分查找/折半查找 3. 插值查找 4. 斐波那契查找线性查找算法代码package com.search;public class SeqSearch { public static void main(String[] args) { int arr[] = {1, 9, ...原创 2020-02-14 19:16:42 · 240 阅读 · 0 评论 -
排序算法总结
冒泡排序基本介绍图解源码//将前面的冒泡排序算法,封装成一个方法 public static void bubbleSort(int[] arr){ //为了容器理解,我们把冒泡排序的演变过程,给大家展示出来 //第一趟就是把最大的数组排在最后 //临时变量 int temp = 0; //标识变...原创 2020-02-09 12:03:09 · 73 阅读 · 0 评论 -
完整排序算法(冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序,基数排序)
排序算法的介绍冒泡排序基本介绍图解冒泡排序应用实例我们举一个具体的案例来说明冒泡算法。我们将五个无序的数: 3,9,-1,10,20.。使用冒泡排序算法将排成一个从小到大的有序数列。图解冒泡排序算法的过程冒泡排序规则小结: 1. 一共进行数组的大小-1次大的循环 2. 每一趟排序的次数在逐渐的减少 3. 如果我们发现在某趟偶排序中,没有发生一次交换,可以提前结束冒泡...原创 2019-12-26 11:21:25 · 865 阅读 · 1 评论 -
时间复杂度和空间复杂度
算法的时间复杂度时间频度基本介绍举例说明忽略常数项忽略底次项忽略系数时间复杂度常见的时间复杂度举例说明1.常数阶O(1)2. 对数阶3. 线性阶4. 线性对数阶5. 平方阶6.立方阶,K次阶平均时间复杂度和最坏时间复杂度算法的空间复杂度基本介绍...原创 2019-12-26 10:52:36 · 138 阅读 · 0 评论 -
递归——八皇后问题(回溯算法)
八皇后问题介绍数据结构和算法内容介绍八皇后问题算法思路分析 1. 第一个皇后先放在第一行第一列 2. 第二个皇后放在第二行第一列,然后判断是否ok,如果不ok,继续放在第二列,第三列,依次把所有列都放完,找到合适的 3. 继续第三个皇后,还是第一列,第二列。。。直到第八个皇后也能放在一个不冲突的位置,算是找到了一个正确解 4. 当得到一个正确解时,在栈回退到上一个栈时,就会开始回溯...原创 2019-12-15 12:05:23 · 981 阅读 · 0 评论 -
递归
递归应用场景看个实际应用场景,迷宫问题(回溯),递归(Recursion)递归的概念简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂问题,同时可以让代码变得简洁。递归的调用机制1. 打印问题 /** * 打印问题 * @param n */ public static void test(int n){ ...原创 2019-12-09 15:01:43 · 123 阅读 · 0 评论 -
栈——前缀,中缀,后缀表达式
前缀表达式(波兰表达式)前缀表达式又称波兰表达式,前缀表达式的运算符位于操作数之前举例说明:(3+4)*5-6对应的前缀表达式就是 - * + 3 4 5 6前缀表达式的计算...原创 2019-12-07 10:02:56 · 1539 阅读 · 0 评论 -
使用栈完成计算一个表达式得结果
题目描述7*2*2-5+1+3+4=?思路创建两个栈 一个装数,另一个装符号通过一个index值(索引),来遍历我们得表达式如果我们发现是一个数字,就直接存入栈中如果发现扫描扫描到是一个数字,就分如下情况如果发现当前得符号栈为空,就直接入栈如果符号栈有操作符,就进行比较,如果当前得操作符号得优先级小于或者等于栈中得操作符,就需要从数栈中pop出两个数,在从符号 栈中p...原创 2019-12-06 12:01:36 · 356 阅读 · 0 评论 -
双向链表的实例
使用带head头的双向链表实现-水浒传英雄排行榜管理单向链表的缺点分析分析双向链表的遍历,添加,修改,删除的操作思路—代码实现双向链表增删改查代码实现增加//添加一个节点到双向链表的最后public void add(HeroNode2 heroNode2){//因为head节点不能动,因此我们需要一个辅助遍历tempHeroNode2 temp =head;//遍历链表,找到最...原创 2019-11-19 16:52:58 · 352 阅读 · 0 评论 -
单向环形链表应用场景
Josephu 约瑟夫问题(丢手帕问题)单向环形链表的样子Jusephu问题Jusephu问题示意图思路分析代码package com.linkedlist;import com.sun.xml.internal.ws.wsdl.writer.document.soap.Body;public class Jusephu {public static void main...原创 2019-11-19 16:52:34 · 521 阅读 · 0 评论 -
栈
栈的一个实际需求栈的介绍栈的应用场景原创 2019-11-19 16:49:39 · 67 阅读 · 0 评论 -
单链表面试题(新浪,百度,腾讯)
单链表常见面试题如下:1.求单链表中有效节点的个数2.查找单链表中的倒数第K个节点(新浪面试题)3.单链表的反转(腾讯面试题)4.从尾到头打印单链表(百度要求1,反转遍历 2,Stack栈)5,合并两个有序的单链表,合并之后的链表依然有序1.求单链表中有效节点的个数//方法:获取单链表的节点个数(如果是带头节点的链表,需求不统计头节点)//head链表的头节点//return ...原创 2019-11-13 18:29:12 · 228 阅读 · 0 评论 -
单链表
介绍实际内存结构图逻辑结构图原创 2019-11-12 20:10:52 · 82 阅读 · 0 评论 -
队列
队列的一个使用场景队列介绍数组模拟队列代码实现原创 2019-11-10 10:49:32 · 74 阅读 · 0 评论 -
稀疏数组和排列
看一个实例基本介绍应用实例代码package cn.dataStructures.sparsearray;public class SparseArray {public static void main(String[] args){//创建一个二维数组 11*11//0:表示没有 1:表示黑子 2:表示白子int chessArr[][]=new int[11...原创 2019-11-07 15:45:22 · 183 阅读 · 0 评论