![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法系列
文章平均质量分 62
以韩顺平老师的数据结构与算法教程为基础的系列文章,对韩老师三年前写的代码进行小幅度的修改,增加大量的注解以及个人建议。还有我个人的笔记
梁小樽
我始终认为,学计算机的应该相互帮助,不计回报。我为人人,人人为我!!!
展开
-
冒泡排序(Java)(完整代码)
你好,我是 hello,word。一个程序小白。原创 2022-07-15 14:00:24 · 103573 阅读 · 6 评论 -
杨辉三角(Java)完整代码,二维数组。
杨辉三角原创 2022-07-15 18:31:37 · 363 阅读 · 0 评论 -
数组练习题(Java)
数组题原创 2022-07-15 21:16:45 · 110 阅读 · 0 评论 -
二维数组和稀疏数组的相互转换
稀疏数组原创 2022-08-11 13:18:56 · 66 阅读 · 0 评论 -
循环队列(java)
循环队列原创 2022-08-13 13:37:08 · 199 阅读 · 0 评论 -
循环队列(java实现)有完整代码
循环队列原创 2022-08-13 23:43:30 · 176 阅读 · 1 评论 -
单链表练习题(Java)
单链表的相关操作原创 2022-08-21 19:17:31 · 265 阅读 · 0 评论 -
双链表增删改查(java)
双链表的增删改查原创 2022-08-22 13:37:20 · 87 阅读 · 0 评论 -
单链表的插入节点(Java)
单链表的头插法和尾插法原创 2022-08-22 14:43:31 · 2730 阅读 · 0 评论 -
约瑟夫环(Java)
用Java写出约瑟夫环的场景原创 2022-08-23 11:27:46 · 1272 阅读 · 0 评论 -
数组和链表模拟栈(Java)
数组和链表模拟栈(Java)原创 2022-08-23 18:15:08 · 228 阅读 · 1 评论 -
栈实现综合计算器(Java)中缀表达式
栈实现综合计算机(java)原创 2022-08-24 16:03:54 · 195 阅读 · 0 评论 -
逆波兰计算器(Java)
逆波兰计算器(后缀表达式)(Java实现)原创 2022-08-24 19:13:50 · 169 阅读 · 0 评论 -
中缀表达式转后缀表达式(Java)
中缀表达式转后缀表达式 用栈和链表实现(Java)原创 2022-08-25 13:10:53 · 784 阅读 · 0 评论 -
初识递归(Java)
初识递归原创 2022-08-25 18:25:09 · 134 阅读 · 0 评论 -
8皇后问题-递归-回溯(Java)
8皇后问题-递归-回溯(Java)原创 2022-08-25 22:50:29 · 865 阅读 · 2 评论 -
时间复杂度,超级详细
时间复杂度,超级详细教程!!!!!!原创 2022-08-26 18:39:05 · 3160 阅读 · 0 评论 -
选择排序(Java)
选择排序(Java)保姆级别的代码,你确定不进来看看???原创 2022-08-26 23:14:43 · 180 阅读 · 0 评论 -
插入排序(Java)
插入排序,用Java实现。里面有超级详细的注解,你确定不进来看看?原创 2022-08-27 19:13:21 · 163 阅读 · 0 评论 -
希尔排序(Java)
学Java:尚硅谷,值得你永远信赖!!!尚硅谷YYDS!!!!(希尔排序)原创 2022-08-28 14:49:13 · 246 阅读 · 0 评论 -
快速排序(Java)新手导入
快速排序(Java)好多详细注解,保姆级注解,要不进来看看?原创 2022-08-28 21:10:46 · 137 阅读 · 0 评论 -
归并排序(Java)
归并排序(MERGE—SORT) 是利用归并的思想实现的排序方式,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则是将分的阶段得到的各答案“修补”在一起,即分而治之。代码实现。...原创 2022-08-29 16:31:11 · 138 阅读 · 0 评论 -
基数排序(Java)
1)基数排序(radix sort)属于“分配式排序” (distribution sort),又称“桶子法”(bucket sort)或bin sort 顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用2)基数排序式属于稳定性的排序,基数排序法的是效率高的稳定性排序法3)基数排序是桶排序的扩展4)基数排序 是1887年赫尔曼—赫勒里发明的,它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。......原创 2022-08-29 19:21:47 · 278 阅读 · 0 评论 -
二分查找、折半查找(Java)
用Java实现二分查找算法,非递归以及递归都有详细注解。编辑使用的是IDEA。文章中有详细的教程地址。原创 2022-08-30 16:18:40 · 472 阅读 · 0 评论 -
斐波那契查找(Java)
我愿称之为玄学查找,感觉我学了这个算法也没啥用。唯一的用处可能就是应付以后的面试官吧!!!!!原创 2022-08-31 12:22:29 · 293 阅读 · 0 评论 -
哈希表(Java)
散列表(Hash table)也叫哈希表,根据关键码值(key -value)而直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中的一个位置来访问记录,以加快查找速度,这个映射函数就叫做散列函数,存放记录的数组就叫散列表。...原创 2022-08-31 17:54:20 · 299 阅读 · 0 评论 -
二叉树(Java)
我的个人笔记!!!!!原创 2022-09-01 20:34:48 · 231 阅读 · 0 评论 -
线索化二叉树(Java)
韩顺平 数据结构 YYDS!!!!这是我的学习笔记,希望大家去看韩老师的教程再来提取我的笔记,(文章里面有学习的地址)对你深入学习有很好的帮助!!!原创 2022-09-02 19:00:52 · 360 阅读 · 0 评论 -
顺序存储二叉树(Java)
从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。最后,认识一下,我是小白。努力成为一名合格的程序员。期待与你的下次相遇。5)n:表示二叉树中的第几个元素(按0开始编号)4)第n个元素的父节点为(n - 1) / 2。在 100-101p. 20分钟即可看完。2)第n个元素的左子节点为2*n + 1。3)第n个元素的右子节点为2*n + 2。1)顺序二叉树通常只考虑完全二叉树。原创 2022-09-02 19:05:06 · 257 阅读 · 0 评论 -
堆排序(Java)
1)堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是一种不稳定的排序。原创 2022-09-03 14:30:35 · 160 阅读 · 1 评论 -
哈夫曼树(Java)
1)给定n个权值作为n个叶子节点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树称为最优二叉树,也称为哈夫曼树(Huffmantree)2)哈夫曼树是带权路径长度最短的树,权值较大的节点离根节点较近。原创 2022-09-03 21:15:30 · 536 阅读 · 0 评论 -
哈夫曼编码(Java)
有一说一,文章的内容出自韩顺平的数据结构和算法教程,搭配韩老师的视频教程一起观看效果会更佳。文章内有视频教学地址。原创 2022-09-06 14:26:47 · 1252 阅读 · 0 评论 -
二叉搜索树(Java)
二叉排序树:BST:(BinarySort(Search)Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点比当前节点的值小,右子节点的值比当前的节点的值大。**特别说明:**如果有相同的值,可以将该节点放在左子节点或者右子节点。原创 2022-09-06 21:20:23 · 215 阅读 · 0 评论 -
平衡二叉树(Java)
1)平衡二叉树也叫平衡二叉搜索树(Self-balancingBinarySearchTree)又被称为AVL树,可以保证查询效率较高2)具有以下特点:它是一颗空树或它的左右两个子树的高度差绝对值不超过1,并且左右两颗子树都是一颗平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树。原创 2022-09-07 14:15:11 · 534 阅读 · 0 评论 -
图的遍历(Java)
本篇文章主要是:简单的介绍了图相关的知识,并用java实现图的深度优先遍历和图的广度优先遍历。编译器使用的是IDEA。文中有详细教程地址。原创 2022-09-10 22:55:49 · 1344 阅读 · 1 评论 -
汉诺塔(Java)
分治算法的基本介绍1)分治法是一种很重要的算法,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多相同或相似的子问题。。。原创 2022-09-11 15:37:10 · 262 阅读 · 0 评论 -
0-1背包java(动态规划)
1)动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法2)动态规划算法与分治算法类似,其基本思想也还是将待求解问题分解成若干个小问题,先求解子问题,然后从这些子问题的解得到原问题的解3)与分治算法不同的是:以用于用动态规划求解的问题,经分解得到子问题往往不是相互独立的(即:下一个子阶段的求解是建立在上一个子阶段的基础上。进行进一步的求解)4)动态规划是可以通过填表的方式逐步推导,得到最优解。原创 2022-09-12 14:58:22 · 1121 阅读 · 0 评论 -
KMP算法(java)
1)KMP是一个解决模式串在文本串是否出现过,如果出现过,最早出现大的位置的经典算法2)Knuth-Morris_Pratt字符串查找算法,简称:KMP算法,常用于在一个文本串内查找一个模式串P的出现位置,这个算法是由DonaldKnuth、vaughanPratt、JamesH.Morris三人于1977年联合发表,故取这三人的姓氏命名此算法。原创 2022-09-13 00:03:51 · 297 阅读 · 0 评论 -
贪心算法(Java)
1)贪心算法:是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择,从而希望能够导致结果是最好或者最优的算法2)贪心算法所得的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。原创 2022-09-13 14:46:14 · 414 阅读 · 0 评论 -
普利姆算法(Java)
1)普利姆(Prim)算法求最小生成树,也就是在包含n个顶点的连通图中,找出只有(n - 1 )条边包含所有n个顶点的连通子图,也就是所谓的极小连通子图2)普利姆算法如下①设G = (V,E) 是连通图,T = (U,D) 是最小生成树, V、U是顶点集合,E,D是边的集合②若从顶点u开始构成最小生成树,则从集合V中取出顶点u放入集合U中,标记顶点v 的visited[u] = 1。原创 2022-09-13 23:09:34 · 506 阅读 · 1 评论