- 博客(6)
- 收藏
- 关注
原创 归并排序的Java实现(排序算法二)
文章目录思想实现方法时间复杂度程序实现 思想 归并排序同快排一样,主要利用了分治策略,将一个大问题不断分解为可简单求解的小问题,分而治之,最后再逐步合并排序。同样的,快速傅里叶变换也运用了这种思想。 实现方法 首先通过递归思想将数组不断缩小,直至达到递归条件,之后通过Merge进行归并。 时间复杂度 归并排序的时间复杂度为:O(nlogn)O(nlog n)O(nlogn) 归并排序的空间复杂度为:O(n)O(n)O(n) 提示:归并排序时间上非常快速,但是需要开辟额外的空间,且是一种稳定的排序方法:一.
2021-08-23 17:08:42
113
原创 Java实现dfs
DFS 的JAVA 实现dfs全排列全排列扩展问题迷宫最短路径问题 dfs 深度优先算法:优先考虑深度,一条路走到黑,直至无路可走 全排列 利用dfs实现全排列 public class Solution { static int n = 4; static int[] a = new int[n+1]; static int[] book = new int[n+1]; static void dfs(int step){ if(step == n+1){ for
2021-08-23 15:11:48
2135
原创 链表JAVA实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 链表概念(基本结构)单链表的应用实例代码实现一代码实现二 概念(基本结构) 链表是以节点的方式来存储的 每个节点包含data域和next域,其中data域存储数据,next域指向下一个节点 链表的各个节点不一定是连续存储 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定 单链表的应用实例 使用带head头的单向链表实现水浒英雄排行榜管理 完成对英雄人物的增删改查操作 第一种方法在添加英雄时,直接添加到链表尾部 第二种
2021-06-22 17:01:53
99
原创 数组模拟环形队列
@环形队列2.0 原因 在队列1.0中,出现了数组不可复用的问题,这里着重于解决这一问题 数组模拟环形队列 对数组模拟队列1.0的优化,将数组看作一个环形的,通过取模的方式来实现。 思路 front指向队列的第一个元素,初始值为0 rear指向队列中最后一个元素的下一个位置,即待添加元素的位置,初始值为0 队列满时,可以通过(rear+1)%maxSize == front来判断 队列为空时:rear == front 队列中有效的数据个数 代码实现 package softTest1; imp
2021-06-22 14:37:38
88
原创 数组模拟队列1.0
队列1.0应用场景概念示意图数组模拟队列思路代码实现问题与优化 应用场景 银行排队的案例 概念 队列是一个有序列表,可以用数组或者链表来实现。 队列遵循先入先出的原则,即:先存入队列的元素先取出,后存入的后取出。 示意图 数组模拟队列思路 队列本身是有序列表,如使用数组的结构来存储队列的数据,则队列数组的声明如下(其中,maxSize是队列的最大容量): 因为队列的输入是从前端开始,输出是从后端开始处理,因此需要两个变量front和rear分别记录队列前段前端和后端的下标,front会随着数据输出而
2021-06-22 10:59:57
65
原创 快速排序(Java)
基于二分法思想 public class quitsort{ public static void main(String[] args){ int[] List {1,4,6,2,3,7,6,4,3,2,1,1,3,6,9,10,13,24,10}; quitsort(List,0,List.length-1); for (int i =0 ;i<List.length;i++){ System.out.println(List[i]); } } public s
2021-06-21 14:54:27
124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人