随笔分类 -  Java数据结构和算法

使用Java实现各类算法,欢迎大家交流,不定期更新,后期会分享关于leetcode的题
摘要:一.什么是图?有哪些特性及其使用场景? 由来: 当我们需要表示多对多的关系的时候,就需要使用到图这种数据结构 定义: 图是一种数据结构,其中顶点可以是具有零个或多个相邻元素.两个顶点之间的连线称为边,节点被称为顶点 常用概念: 无向图表示顶点之间的连接没有方向,既可以A->B,也可以B->A,有向图 阅读全文
posted @ 2020-02-26 09:35 月上贺兰 阅读(1709) 评论(0) 推荐(1)
摘要:一.Huffman树 定义: 给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径达到最小,这样的二叉树称为最优二叉树,也称为霍夫曼树(Huffman树). 特点: Huffman树是带权路径长度最短的树,权值较大的节点离根节点较近 权值 = 当前节点的值 * 层数,wpl最小的值,就是H 阅读全文
posted @ 2020-02-13 15:44 月上贺兰 阅读(3314) 评论(0) 推荐(0)
摘要:一.冒泡排序 基本思想:通过对待排序序列此前向后,依次比较相邻元素的值,若发现逆序则进行交换,使得较大的值从前面移动到后面, 类似于水下的气泡一样(是所有排序算法中效率最低的) public static void BobbleSort(int[] arr){ /*冒泡排序,时间复杂度为O(n^2) 阅读全文
posted @ 2020-02-13 14:08 月上贺兰 阅读(1811) 评论(0) 推荐(0)
摘要:链表是一个有序的列表,它分为单向链表,双向链表,单向环形链表 一.单向链表 链表在内存中的存储如下: 它有如下特性: 1.链表是以节点的方式,是链式存储 2.每个节点都包含data域,next域来指向下一个节点 3.每个链表在内存中的分布不一定是连续的 4.链表分为有头结点的链表和没有头结点的链表, 阅读全文
posted @ 2020-01-28 12:00 月上贺兰 阅读(526) 评论(0) 推荐(0)
摘要:一.数据结构的分型 数据结构包括线性结构和非线性结构 线性结构: 1.线性结构是最常见的数据结构,其特点是数据元素之间一对一的线性关系 2.线性结构有两种不同的存储结构(数组)和链式存储结构(链表),顺序存储的线性表称为顺序表,顺序表中存储的元素是连续的 3.链式存储的表称为链表,链表中的存储元素不 阅读全文
posted @ 2020-01-23 12:33 月上贺兰 阅读(187) 评论(0) 推荐(0)