
数据结构与算法分析
数据结构+算法
尬尬_
我的互联网笔记本
展开
-
【考研必背】数据结构基本算法汇总 二叉树基础
考研数据结构 代码题必背 二叉树算法总结原创 2022-10-27 17:30:47 · 424 阅读 · 0 评论 -
【考研必背】数据结构基本算法汇总之单链表和顺序表
线性表基本算法线性表1. 顺序表结构体静态分配 (下标从1开始)#define MAXSIZE 50typedef struct { ElemType data[MAXSIZE]; // 顺序表元素 int length; // 当前长度} SqList;动态分配#define INITSIZE 50typedef struct { ElemType *data; // 顺序表元素 int maxsize,length; // 前者为最大长度. 后者为当前长度原创 2022-10-09 14:47:44 · 611 阅读 · 0 评论 -
基于Java的哈夫曼算法解压缩文本
文章目录前言一、需求分析课程设计题目:二、概要设计1.核心算法模块:2.文件读写模块:3.界面显示模块:三、详细设计1.核心算法模块:2.文件读写模块3.界面显示模块:四、代码前言基于课设报告改编碌碌无为的12月…提示:以下是本篇文章正文内容,下面案例可供参考一、需求分析课程设计题目:设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈曼编码,生成编码文件(压缩文件,后缀名.cod);反过来,可将一个压缩文件译码还原为文本文件(.txt).1.核心算法模块: 使用哈夫曼编码算法原创 2020-12-25 15:23:27 · 682 阅读 · 0 评论 -
Java数据结构之二叉排序树-BST的基本算法(创建与删除的三种情况)
文章目录前言一、二叉排序树是什么?二、BST的创建1.正常搭建一颗树2.添加结点中序遍历BST三、BST删除的三种情况做删除算法前的准备工作1.删除叶子节点2.含一个子结点的结点3.含两个子结点的结点前言前面所介绍的树都不能达到排序的效果 , 而本文要介绍的BST-二叉排序树是能轻松地将一颗树的各个结点值的大小进行左右划分, 话不多说,开始整活~提示:以下是本篇文章正文内容,下面案例可供参考一、二叉排序树是什么?二、BST的创建1.正常搭建一颗树按常规步骤搭建一颗二叉树 , 同时注意 ,原创 2020-11-29 19:41:18 · 408 阅读 · 0 评论 -
Java数据结构之图的基本概念和算法,深度优先遍历DFS,广度优先遍历BFS(图解)
文章目录前言一、图的基本概念1.图的定义2.基本术语二、图的基本算法1.初始化图2.插入顶点和边3.矩阵打印三、深度优先算法四、广度优先算法总结前言千呼万唤始出来,终于开始学图喽 (虽然学校的课程早结课了) , 话不多说,开始整活提示:以下是本篇文章正文内容,下面案例可供参考一、图的基本概念下面讲几个常用的概念,1.图的定义图(graph) ,是由两个集合组成的 ,其一为顶点集, 其二为边集 ,其中顶点集不允许为空 ,边集可为空, 也就是说,只有一个顶点没有边的图也可以叫做图2.基本术原创 2020-11-28 21:40:14 · 318 阅读 · 0 评论 -
Java算法之 如何用三秒钟排序三亿个随机数 (快速排序)
文章目录前言一、思路图解二、代码实现1.引入库2.读入数据时间复杂度前言书接上文 , 本以为希尔排序已经很快很快了,没想到今天的快速排序还要快!!!太快了太快了,芜湖~~提示:以下是本篇文章正文内容,下面案例可供参考一、思路图解思路非常简单 , 很好理解二、代码实现1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimp原创 2020-11-16 21:56:11 · 584 阅读 · 2 评论 -
Java算法之 排一亿个随机数需要多久! (插入排序的多种实现方式及其图解)
文章目录前言一、直接插入排序1. 图解插排2. 代码实现3.性能检测与时空复杂度前言插入排序狭义上指的是简单插入排序(选择集合,比较大小,插入元素),广义上还应该包括希尔排序(分治思想)及其两种实现方式,下面将介绍这几种排序方式及其同异点提示:以下是本篇文章正文内容,下面案例可供参考一、直接插入排序1. 图解插排思路 : 字面意义,插入是将某一元素按某种规则放入到特定集合中 ,因此我们需要将序列划分成为两块 ,一部分为有序集合, 另一部分为待排序集合图解 :为了方便理解,我们就按最最原创 2020-11-14 12:52:58 · 1106 阅读 · 1 评论 -
Java算法之选择排序(简单选择排序)
文章目录前言一、简单选择排序的思路1.基本思想2.步骤二、代码1.代码实现2.算法分析前言下面介绍选择排序中的简单选择排序, 选择排序还有树形选择排序和堆排序其中堆排序在往期已有介绍 , 这里是传送门提示:以下是本篇文章正文内容,下面案例可供参考一、简单选择排序的思路1.基本思想选择排序的基本思想是 : 在待排序的目标中不断的遍历,选出在指定范围内最小的元素 , 将其放到序列的最 前/后处 (前/后由给定的升降序决定)2.步骤1.设待排序列为arr[0~n] , 从arr[0]开始,原创 2020-11-10 18:50:12 · 260 阅读 · 0 评论 -
Java数据结构之哈夫曼树与哈夫曼编码思路讲解
文章目录前言一、Huffman Tree是什么?1.定义2.基本概念二、哈夫曼算法1.结点是必需的2.创建哈夫曼树三、哈夫曼编码1.定义2.思路到这里,都上述第二步的代码,还有构造编码表,代码思路解释,明天起床写吧,先发了前言上面这位就是本文的编码方式发明者, 哈夫曼先生下面会介绍哈夫曼树的定义,名词解释(基本概念),构造算法和哈夫曼编码.提示:以下是本篇文章正文内容,下面案例可供参考一、Huffman Tree是什么?1.定义哈夫曼树是一种带权路径长度最短的树 , 下面会给出何为带权原创 2020-11-09 23:44:37 · 1639 阅读 · 0 评论 -
Java算法之选择排序 以小见大的堆排序(含图示讲解)
文章目录前情提要一、以大顶堆为例讲讲基本思路和注意点1.这几点必看????2.基本思路二、构建大顶堆思路图解二、代码1.先将数组调成大顶堆2.循环构建顶堆与"沉入"三、时间复杂度总结前情提要下面我们会介绍一种速度非常快的排序算法:堆排序, 它的核心步骤主要是构建大小顶堆和实施排序.在实施排序的过程中, 同样也是通过循环调用堆排序来完成的, 因此,最为核心的内容是构建顶堆建议配合哔哩哔哩<<Java数据结构与算法(尚硅谷)>>,p107-p111,视频演示理解更直观提原创 2020-11-04 17:05:26 · 402 阅读 · 0 评论 -
Java数据结构之树 (查找,删除,顺序存储与线索化二叉树)
文章目录前言一、查找(前中后序)二、删除1.引入库2.读入数据三、顺序存储二叉树四、线索化二叉树前言本篇将介绍树结构中的查找 , 删除 , 顺序存储和线索化提示:以下是本篇文章正文内容,下面案例可供参考一、查找(前中后序)示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、删除1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as plt原创 2020-11-01 11:21:23 · 589 阅读 · 2 评论 -
[数据结构与算法] 线性表(顺序表,C++描述)
水课自救指南part1文章目录线性表的定义:一、顺序表是什么?二、基本算法定义1.增2.删3.改4.查总结线性表的定义:说简单一点 , 就是具有某种共性的元素串成串,构成的有限序列, 存在计算机物理内存中的一种数据结构一、顺序表是什么?关于顺序表 , 我想只要在前边线性表的定义中加上一个限定词 , 即 :具有某种共性的元素串成串,并占用一段连续的存储单元构成的有限序列,存在计算机物理内存中的数据结构注 : 元素之间的逻辑关系与物理关系都是相邻的.元素对应的存储位置 : LOC(ai)=原创 2020-09-13 21:25:23 · 255 阅读 · 0 评论 -
Java实现数据结构之树(二叉树部分)
文章目录名词解释一、前中后序遍历二、二叉树的搭建1.创建节点类2.写出第二目三种顺序的遍历方法3.创建一个二叉树类4.手动创建(setter方法) or 递归创建?总结名词解释挂几个名词解释节点 : 对象根节点(root) : 无父节点的节点叶子节点 : 没有子节点的节点节点的权 : 节点的值路径 : 从root节点到该节点经过的路线二叉树 : 每个节点最多都只有两个子节点满二叉树 : 所有叶子节点都在最后一层,且节点数 = 2^层数-1完全二叉树 : 从左往右看,最后一层的节点连续(原创 2020-08-17 14:43:32 · 241 阅读 · 0 评论