
算法与数据结构
a88729845
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java实现二叉树的深度优先遍历
基本思路: 二叉树的深度优先遍历(中序遍历)需要一个栈用于遍历,一个列表用于记录访问过的节点 1.将根节点压入栈中 2.1栈顶元素有左子节点且其左子节点不在列表当中,将其左子节点压入栈中 2.2.1如果栈顶元素没有左子节点或其左子节点在列表中,弹出栈顶元素并访问(还要将其加入到列表中)。 2.2.2如果弹出的节点有右子节点,将其右子节点压入栈 3.如果栈不为空,执行2 如上图所示,则采用当前...原创 2019-10-29 17:45:27 · 383 阅读 · 0 评论 -
Java实现一个最大堆
Java实现一个最大堆参考文献 这是写的第一篇博客,在此之后对于学过的知识要经常性的做出总结! 用Java实现了一个最大堆,在堆内部创建了一个HeapSort的内部类用于堆排序。 注意:本篇文章暂时未考虑堆的动态扩容。 // An highlighted block package sort; import java.util.Arrays; import java.util.Random; ...原创 2019-06-20 15:06:41 · 862 阅读 · 0 评论 -
Java 实现Merge Sort 归并排序,使用辅助数组,降低merge方法的空间复杂度
本文主要加入了辅助数组,使得merge方法的空间复杂为O(n)。 import java.util.Arrays; /* * 改进merge方法的空间复杂度,通过一个辅助数组,使得空间复杂度为O(n) * 1.把数组分为左右2个子数组(终止条件数组长度为1,不再分),分别进行mergeSort排序 * 2.有序的左右子数组,合并到辅助数组 * 3.从辅助数组中将修改了的数据复制会原数组 ...原创 2019-08-11 23:09:39 · 592 阅读 · 0 评论