![](https://img-blog.csdnimg.cn/20200428135602617.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构与算法
爱你不止三千遍
爱你不止三千遍,该用户很懒什么都没有留下......
展开
-
哈希表是个啥
转载自微信公众号:编码之外 本文原创作者:庆哥小白 转载已获本人同意大家可以关注关注庆哥的公众号,另外之前也探讨过哈希表(点击进入)转载 2020-05-15 20:30:29 · 530 阅读 · 0 评论 -
斐波那契数列的效率提升方案
package com.zengwen.ten;public class FibDemo { //用于统计斐波那契函数的执行次数 static int count; public static void main(String[] args) { //测试斐波那契数列 //规模为20 int n = 20; long startTime=System.currentTimeMillis(); lo.原创 2020-05-15 19:05:40 · 315 阅读 · 0 评论 -
二分查找递归与非递归式实现
递归式: /** * 递归式二分查找实现 * @param arr * @param left * @param right * @param value * @return */ public static int binarySearch1(int[] arr, int left, int right, int value){ if (left > right) return -1;原创 2020-05-15 16:56:41 · 113 阅读 · 0 评论 -
DFS与BFS
一、图的深度优先介绍 1.图遍历介绍 2.深度优先遍历基本思想 3.深度优先遍历算法步骤二、图的广度优先遍历 2.1广度优先遍历基本思想 2.2广度优先遍历算法步骤原创 2020-05-14 13:39:26 · 211 阅读 · 0 评论 -
图的概念
一、图基本介绍 1.1 为什么要有图 1.2 图的举例说明 1.3 图的常用概念二、图的表示方式 2.1 邻接矩阵 2.2 邻接表 2.3 图的快速入门案例原创 2020-05-14 11:38:41 · 105 阅读 · 0 评论 -
多路查找树
一、 二叉树与 B树1.1 二叉树的问题分析1.2 多叉树1.3 B树的基本介绍二、2-3树2.1 2-3树是最简单的 B 树结构,具有如下特点:2.2 2-3树应用案例2.3 其它说明三、B 树、B+树和B*树3.1 B树的介绍3.2B+ 树的介绍3.3B*树的介绍原创 2020-05-12 16:38:51 · 91 阅读 · 0 评论 -
平衡二叉树(AVL)
一、平衡二叉树的引入 看一个案例(说明二叉排序树可能的问题) 给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在.左子树全部为空,从形式上看,更像一个单链表. 插入速度没有影响 查询速度明显降低(因为需要依次比较), 不能发挥BST 的优势,因为每次还需要比较左子树,其查询速度比 单链表还慢 解决方案-平衡二叉树(AVL)...原创 2020-05-12 14:23:49 · 192 阅读 · 0 评论 -
二叉排序树(BST)
(BST) [右孩子≥当前结点≥左孩子]一、二叉排序树介绍二、二叉排序树的创建和遍历三、二叉排序树的删除原创 2020-04-28 20:26:22 · 208 阅读 · 0 评论 -
树结构的基础部分
一、二叉树二、顺序存储二叉树三、线索化二叉树原创 2020-04-24 12:27:03 · 493 阅读 · 0 评论 -
哈希表
哈希表hashtable(key,value) 就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。原创 2020-04-24 11:58:46 · 379 阅读 · 0 评论 -
常见的查找算法(二分\插值\斐波那契查找)
一、查找算法介绍二、二分查找三、插值查找四、斐波那契查找原创 2020-04-22 22:15:13 · 183 阅读 · 0 评论 -
排序算法总结
选泡插,快归堆希桶计基;恩方恩老恩一三,对恩加K恩乘K。选快堆希都不稳原创 2020-04-22 12:53:42 · 298 阅读 · 0 评论 -
八大内部排序算法-堆排序
①将无序序列构建成一个堆,根据升序降序需求选择大根堆或小根堆。②将堆顶元素和末尾元素交换,将最大元素“沉”到数组末端。③重新调整结构,使其满足堆定义,然后继续交换堆顶元素和当前末尾元素,反复执行调整+交换步骤,直到整个序列有序。原创 2020-04-26 23:08:42 · 245 阅读 · 0 评论 -
八大内部排序算法-归并\快速\基数排序
五、归并排序(MergeSort) 六、快速排序(QuickSort)七、基数排序(RadixSort)原创 2020-04-21 20:35:13 · 203 阅读 · 0 评论 -
八大内部排序算法-冒泡\选择\插入\希尔排序
一、冒泡排序(Bubble)二、选择排序算法(Select)三、插入排序算法(Insertion)四、希尔排序算法(Shell)原创 2020-04-21 16:18:42 · 160 阅读 · 0 评论 -
前缀(波兰式)、中缀、后缀表达式(逆波兰式)
package com.zengwen.stack;/** * 使用栈完成表达式的计算 思路 * 1. 通过一个 index 值(索引),来遍历我们的表达式 * 2. 如果我们发现是一个数字, 就直接入数栈 * 3. 如果发现扫描到是一个符号, 就分如下情况 * 3.1 如果发现当前的符号栈为 空,就直接入栈 * 3.2 如果符号栈有操作符,就进行比较,如果当前...原创 2020-04-16 13:08:41 · 712 阅读 · 0 评论 -
栈(链表模拟)
package com.zengwen.stack;/** * 单向链表模拟栈 */public class SingleLinkedListStackDemo { public static void main(String[] args) { //创建一个栈 SingleLinkedListStack singleLinkedLi...原创 2020-04-14 19:07:58 · 148 阅读 · 0 评论 -
栈(数组模拟)
package com.zengwen.stack;/** * 数组模拟栈 */public class ArrayStackDemo { public static void main(String[] args) { ArrayStack arrayStack = new ArrayStack(5); Sy...原创 2020-04-14 19:05:38 · 130 阅读 · 0 评论 -
单向环形链表
Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数, 数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。原创 2020-04-12 22:00:09 · 131 阅读 · 0 评论 -
双向链表
package com.zengwen.linkedlist;/** * 不带头节点的双向链表 */public class DoubleLinkedListDemo { public static void main(String[] args) { Node node1 = new Node(1, "宋江", "及时雨"); ...原创 2020-04-12 11:44:47 · 220 阅读 · 0 评论 -
单链表面试题
1.求单链表的有效节点个数(不包括头节点) public int getLength(){ if (head.next == null){//空链表 return 0; } int length = 0; //定义一个辅助的变量 HeroNode cur = head.next; ...原创 2020-04-12 11:40:08 · 101 阅读 · 0 评论 -
单链表
按照添加的顺序添加与遍历package com.zengwen.linkedlist;public class SingleLinkedListDemo { public static void main(String[] args) { //进行测试 //先创建节点 HeroNode h1 = new...原创 2020-04-05 18:20:08 · 126 阅读 · 0 评论 -
队列(下)
代码实现:package com.zengwen.queue;import org.omg.SendingContext.RunTime;import java.util.Scanner;public class CircleArrayQueueDemo { public static void main(String[] args) ...原创 2020-04-02 17:01:57 · 88 阅读 · 0 评论 -
队列(上)
代码如下:package com.zengwen.queue;import java.lang.reflect.Executable;import java.util.ArrayList;import java.util.Scanner;public class ArrayQueueDemo { public static void main(S...原创 2020-04-02 16:58:31 · 97 阅读 · 0 评论 -
稀疏数组
代码如下:package com.zengwen.sparsearray;public class SparseArray { public static void main(String[] args) { //创建一个原始的二维数组 11 * 11 // 0 表示没子 1 表示黑子 2 表示蓝子 int ...原创 2020-04-02 16:54:34 · 65 阅读 · 0 评论 -
数据结构初始
线性结构与非线性结构线性结构常见的有:数组、队列、链表和栈,非线性结构包括:二 .维数组,多维数组,广义表,树结构,图结构程序=数据结构+算法数据结构是算法的基础原创 2020-04-02 16:49:48 · 86 阅读 · 0 评论