
java算法
文章平均质量分 85
DempseyLee
这个作者很懒,什么都没留下…
展开
-
【数据结构】Java实现希尔排序和基数排序
目录01 希尔排序1.1 希尔排序举例和图解1.2 算法步骤1.3 代码实现1.3.1 交换法实现1.3.2 移动法实现02 基数排序(桶排序)2.1 基数排序原理图解2.2 基数排序代码实现01 希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率; 但插入排序一般来...原创 2022-03-18 07:19:52 · 289 阅读 · 0 评论 -
【java数据结构】递归应用: 迷宫回溯问题和八皇后问题
目录01 递归1.1 递归的调用机制1.2 递归能解决的问题02 迷宫回溯问题2.1 代码示例03 八皇后问题3.1 八皇后算法思路分析3.2 代码示例01 递归简单的说,递归就是方法自己调用自己,每次调用时传入不同变量, 递归有著姐编程者解决复杂的问题,同时可以使代码变得简洁。调用递归时需要有一个跳出递归的出口,否则会栈溢出1.1 递归的调用机制打印问题阶乘问题public class RecursionTest { .原创 2022-03-18 00:28:08 · 940 阅读 · 0 评论 -
【左神算法2】O(Nlog(N))排序 归并排序 和快速排序
目录01 master公式求递归时间复杂度02 归并排序2.1 算法步骤2.2 归并排序代码2.3 归并排序拓展: 小和问题03 快速排序3.1 算法步骤3.2荷兰国旗问题3.3经典快排01 master公式求递归时间复杂度master公式(也称主方法)是用来利用分治策略来解决问题经常使用的时间复杂度的分析方法,(补充:分治策略的递归解法还有两个常用的方法叫做代入法和递归树法,以后有机会和亲们再唠),众所周知,分治策略中使用递归来求解问题分为三步走,分别为..原创 2022-03-16 19:13:36 · 1144 阅读 · 0 评论 -
【左程云算法】时间复杂度(Olog(N^2))和冒泡排序 选择排序
01 时间复杂度分析常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。我的理解是这种操作最终的执行就是执行汇编命令,而汇编命令执行花费的时间都是有限的机器时钟时间,可以简单理解为执行一个相加指令,所以常数操作花费的时间是确定有限的,和数量级没关系。时间复杂度为一个算法流程中,常数操作数量的指标,常用O(读作 big O)来表示。具体来说,在常数操作数量的表达式中,只要有高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那么时间复杂度为O(..原创 2022-03-16 03:14:44 · 751 阅读 · 0 评论