09 2021 档案
摘要:一、选择排序的弊端 需要n^2。核心的耗时在每次寻找最大值。 public static void selectionSort(int[] list) { for (int index = 0; index < list.length - 1; index++) { int minIndex = f
阅读全文
摘要:一、最大堆建立 给定N个元素,按照最大堆的要求将元素放入数组中。 两种做法: 通过插入,依次将N个元素插入一个空堆中,复杂度为nlogn。 线性复杂度建立堆 先将N个元素按照顺序存入,先满足完全二叉树的特性 调整各个节点,让其满足最大堆的特性 本文主要介绍第二种方法,线性复杂度创建堆。 二、线性复杂
阅读全文
摘要:一、堆定义 堆是一个优先队列,右二叉树来表示,其特性: 是一颗完全二叉树 任意节点的元素是其子树的最大值(最小值) 最大值,大顶堆 最小值,小顶堆 示例: 完全二叉树用数组继续存储。定义如下: public class HeapStruct { private Integer[] elements;
阅读全文
摘要:一、层次化遍历说明 层次化遍历:abcdefghij 二、层次化遍历代码 思想:采用队列先进先出的特性来实现 public static void levelTraversal(TreeNode root) { if (root == null) { return; } Queue<TreeNode
阅读全文
摘要:一、递归后序遍历 public static void postOrder(TreeNode root) { if (root == null) { return; } postOrder(root.getLeft()); postOrder(root.getRight()); System.out
阅读全文
摘要:中序遍历:左子树,根节点,右子树。 一、递归中序遍历 public static void inOrder(TreeNode root) { if (root == null) { return; } inOrder(root.getLeft()); System.out.println(root.
阅读全文
摘要:先序遍历:根节点,左节点,右节点。 一、递归先序遍历 递归方式比较直接明了。 public static void preOrder(TreeNode root) { if (root == null) { return; } System.out.println(root.getValue());
阅读全文
摘要:一、数组和二叉树的关系 二叉树可以通过数组来进行存储。https://www.cnblogs.com/Brake/p/15058906.html 数组从0开始,如果父节点在数组中的下标是i,那么其左二子在数组中对应的下标则为2i+1。右儿子子对应的下标为2i+2。 同理,已知某节点在数组中对应的下标
阅读全文

浙公网安备 33010602011771号