YHLG
码龄5年
关注
提问 私信
  • 博客:28,323
    28,323
    总访问量
  • 38
    原创
  • 1,972,332
    排名
  • 83
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2020-02-19
博客简介:

weixin_46360473的博客

查看详细资料
个人成就
  • 获得99次点赞
  • 内容获得24次评论
  • 获得481次收藏
  • 代码片获得366次分享
创作历程
  • 38篇
    2020年
成就勋章
TA的专栏
  • 笔记
    1篇
兴趣领域 设置
  • Python
    python
  • Java
    java
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

数据结构与算法(Java)

数据结构与算法(Java)在学习数据结构与算法(C语言)版本后,特地又学习了Java版本,以下为我的笔记:稀疏数组 稀疏数组(sparsearray)与二维数组的相互转换队列链表: 单链表 双向链表 约瑟夫问题(Josephu)栈 中缀表达式 逆波兰计算器递归 迷宫问题 八皇后问题排序 冒泡排序 选择排序 插入排序 希尔排序 快速...
原创
发布博客 2020.11.12 ·
3503 阅读 ·
61 点赞 ·
14 评论 ·
394 收藏

图(Java)

图(Java)1.定义图形结构 中,任意两个数据元素之间都可能存在关系,又称作 网状结构 。图的用途极为广泛:在图中的数据元素通常称为顶点,图(Graph )是由顶点集合( (Vertex )及顶点之间的 关系集合( Edge )组成的一种数据结构。2.常用术语1.有向图和无向图在图中,根据顶点之间的关系是否有 方向性 可将图分为有向图和无向图。对于无向图 ,顶点的关系为无向边;对于有向...
原创
发布博客 2020.04.09 ·
654 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

平衡二叉树(Java)

平衡二叉树(Java)平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列,1是根...
原创
发布博客 2020.04.08 ·
467 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

二叉排序树(Java)

二叉排序树(Java)二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。定义一棵空树,或者是具有下列性质的二叉树称为二叉排序树:若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也分别为二叉排序树;相关操作举个栗子以结点权值集合...
原创
发布博客 2020.04.05 ·
412 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

赫夫曼树编码(Java)

赫夫曼树编码(Java)赫夫曼编码(Huffman Coding),又称哈夫曼编码,是一种编码方式,赫夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码。编码:在数据通讯中,经常需要将传送的文字转换成由二进制字符0 ,1组成的二进制串赫夫曼编码:...
原创
发布博客 2020.04.04 ·
569 阅读 ·
3 点赞 ·
1 评论 ·
3 收藏

赫夫曼树(Java)

赫夫曼树(Java)赫夫曼(Huffman )树 ,也称最优二叉树,是指对于一组带有确定权值的叶子结点,构造的具有最小带权路径长度 的二叉树。二叉树的路径长度: 由根结点到所有叶子结点的路径长度之和二叉树的带权路径长度: 从根结点到各个叶子结点的路径长度与相应结点权值的乘积之和特点权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离根结点。举个栗子以结点权值集合为arr...
原创
发布博客 2020.04.03 ·
287 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

堆排序(Java)

基数排序(Java)堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。时间复杂度:O(nlogn)稳定性:不稳定实质:分别排序,分别收集图示代码如下...
原创
发布博客 2020.04.02 ·
164 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线索二叉树(Java)

线索二叉树(Java)在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化定义对二叉树进行遍历,可以把二叉树中所有结点排列为一个线性序列;为了保留结点在某种遍历序列中 直接前驱和直接后继 的位置信息,可以利用二叉树的二叉链表存储结构中的空指针域 来指示意义一个具有n 个结...
原创
发布博客 2020.04.01 ·
599 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

顺序二叉树(Java)

顺序二叉树(Java)二叉树的顺序存储是将二叉树的所有结点,按照一定的次序,存储到一片连续的存储单元中,主要针对完全二叉树。重要性质若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意 一个编号为 i 的结点有以下性质:节点为i 的左孩子结点编号为2i,为右孩子结点编号为 2i+1; ;若 i=1 ,则该结点是二叉树的根,无双亲;否则i>...
原创
发布博客 2020.03.31 ·
1007 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

树和二叉树(Java)

树和二叉树(Java)树树是重要的非线性数据结构,元素之间存在一对多的关系,直观的看也是以分支关系定义的层次结构,在客观世界中也广泛存在如文件层次结构等。1.树的定义树结构 (除了一个称为根的结点外)每个元素都有且仅有一个直接前趋,有且仅有零个或多个直接后继。树是递归结构2.树的特点树的 根结点没有前驱结点 , 除根结点之外的所有结点有且只有一个前驱结点 。树中所有结点可以...
原创
发布博客 2020.03.30 ·
407 阅读 ·
3 点赞 ·
2 评论 ·
5 收藏

斐波那契查找(Java)

斐波那契查找(Java)斐波那契查找就是在二分查找的基础上根据斐波那契数列进行分割的。在斐波那契数列找一个等于略大于查找表中元素个数的数F[n],将原查找表扩展为长度为Fn,完成后进行斐波那契分割,即F[n]个元素分割为前半部分F[n-1]个元素,后半部分F[n-2]个元素,找出要查找的元素在那一部分并递归,直到找到。重要公式:mid=left+F[k-1]-1适用条件: 采用顺序存储结...
原创
发布博客 2020.03.20 ·
290 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

插值查找(Java)

插值查找(Java)插值查找,有序表的一种查找方式。插值查找是根据查找关键字与查找表中最大最小记录关键字比较后的查找方法。插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率。适用条件: 采用顺序存储结构的有序表重要公式:mid=left+(right-left)*(value-arr[left]) / (arr[right]-arr[left])优点:对于数据量较大,数...
原创
发布博客 2020.03.20 ·
605 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

二分查找(Java)

二分查找(Java)二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。查找过程:每次将待查记录所在区间缩小一半适用条件: 采用顺序存储结构的有序表代码如下public class Binarysearch { public static void main(String[]...
原创
发布博客 2020.03.20 ·
2452 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

线性查找(Java)

线性查找(Java)线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。实现思路线性查找是很简单的查找方法,循环遍历发现需查找的元素直接返回即可,若存在相同元素时,则需要新建一个数组,存放所有需查找的元素,后遍历输出。代码如下public class...
原创
发布博客 2020.03.20 ·
510 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

归并排序(Java)

归并排序(Java)归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。时间复杂度:O(nlog 2 n)稳定性:稳定实质:将两个或两个以上的序列组合成一个...
原创
发布博客 2020.03.19 ·
156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

快速排序(Java)

快速排序(Java)快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。时间复杂度:O(nlogn)稳定性:不稳...
原创
发布博客 2020.03.19 ·
440 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

希尔排序(Java)

希尔排序(Java)希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1...
原创
发布博客 2020.03.18 ·
235 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

插入排序(Java)

插入排序(Java)插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,算法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一...
原创
发布博客 2020.03.18 ·
254 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

选择排序(Java)

选择排序(Java)选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零时间复杂度:O(n2)算法稳定性:不稳定实质:依次选择相对最大(小)的元素图示...
原创
发布博客 2020.03.18 ·
338 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

冒泡排序(Java)

冒泡排序(Java)它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。时间复杂度:O(...
原创
发布博客 2020.03.18 ·
341 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏
加载更多