数据结构与算法
原来是小柒
这个作者很懒,什么都没留下…
展开
-
数据结构与算法——AVL树的学习与java实现
二叉平衡树二叉平衡树又叫做AVL树,它继承了二叉搜索树的规则。且每个节点的左子树和右子树的高度差最多差1。二叉平衡树由于不会产生像二叉搜索树那样的极端情况,所以查找,删除(懒惰删除)的时间复杂度为o(logn)。插入操作需要对树作出调整,所以时间复杂度略高于o(logn)。如下图所示:第一张图为AVL树,第二张图则不是AVL树AVL树的旋转插入操作需要满足AVL树的特性:每个节点的...原创 2020-03-02 11:22:26 · 229 阅读 · 0 评论 -
数据结构与算法——二叉排序树的学习与Java实现
前言在数据结构与算法中,每一种算法都有其优缺点。顺序存储:不排序,查找比较困难;顺序存储:排序,删除插入困难链式存储:无论是否排序,查找都比较困难。基于以上三点,我们就有了二叉排序树。二叉排序树二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),也称二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空...原创 2020-03-01 17:49:12 · 197 阅读 · 0 评论 -
数据结构与算法——赫夫曼树和赫夫曼编码的java代码实现
哈夫曼编码的原理对于我们日常操作压缩文件来说,通常都是将文件中的字符转换成压缩后的格式,但为什么能够解压回来,那是因为压缩后的数据形式和元原字符唯一对应。因为计算机总是以0/1保存文件,那编码过程中也是将文件转化成更小的0/1序列,起到压缩的作用。比如:对于一个字符a来说,计算机是用8bit来保存字符的,如果我们可以唯一用一个bit的0来表示这个a,那这一个字符就为计算机节省了7bit的空间...原创 2020-02-25 15:51:24 · 389 阅读 · 0 评论 -
数据结构与算法——二叉树的学习总结与基本实现
引言在数据结构与算法的学习中,我们都无法绕开树与二叉树的学习。之前我们介绍过数组的数据结构,并且也学习了一些基本的查找算法,但是如果我们想要在有序数组中插入一个数据项,就必须要找到数据项的位置,然后将所有插入位置后的数据项全部向后移动一位,来给新的数据项腾出空间,这样一来,其实非常耗费时间。然后我们介绍了另外一种数据结构——链表。链表的插入删除效率较高,我们只需要改变一些引用值就可以了。但是查...原创 2020-02-16 17:44:54 · 779 阅读 · 0 评论 -
数据结构与算法——八种基本排序算法的学习总结与实现
算法衡量算法的标准时间复杂度:空间复杂度:时间频度:(Tn)八种基本排序算法的实现冒泡排序冒泡排序的java实现:package demo4;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { int [] arr=new int[]{5,7...原创 2020-02-15 21:09:56 · 2963 阅读 · 0 评论 -
数据结构——链表的学习总结与java实现
链表链表是一个常见的基础数据结构,可以理解为一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。也可以称之为链式存储的线性表,链表是由多个链表元素(节点)组成,二节点之间通过逻辑连接,这样就形成了链式存储结构。链表可以分为两个域:1、数据域(值域):用来存储节点的值2、指针域(链域):用来存储其后节点的地址或位置下面我将对自己学过的链表做一个复习与总结,只是单纯的为了以后能够四是...原创 2020-02-14 21:21:26 · 502 阅读 · 1 评论 -
数据结构——栈与队列总结与java实现
栈概念:栈的定义: 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。当表中没有元素时称为空栈。栈为后进先出(Last In First Out)的线性表,简称为LIFO表。java代码实现:public class MyStack { //栈的底层使用数组来存储数据 int[] elemen...原创 2020-02-13 15:43:23 · 361 阅读 · 0 评论 -
数据结构之查找算法(顺序查找和二分查找 java版)
查找是在大量的信息中寻找一个特定的信息元素,在计算机中,查找是最基本的运算。用关键字标识一个数据元素,查找是根据给定的某个值,在表中确定一个关键字或数据元素。在计算机中进行查找的方法是根据表中的记录的组织结构确定的。顺序查找顺序查找也称为线形查找,从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查...原创 2020-02-13 11:21:16 · 417 阅读 · 0 评论 -
数据结构的基础知识与实现代码
众所周知,数据结构与算法在我们学习中起着举足轻重的作用,自己大二的时候也学过,但是由于长时间没有回顾与复习,基本上也忘得差不多了,想着刚好趁着这段空闲时间,打算重新复习一下数据结构与算法的基本知识。数据结构的基本使用数据结构的基本操作教材上讲解得十分清楚,总结也就不再多说,直接贴代码吧。public class TestArray { public static void main(Str...原创 2020-02-12 16:44:08 · 561 阅读 · 0 评论