常见的时间复杂度 常见的时间复杂度 常数阶 O(1) 对数阶 O(log2n) 线性阶 O(n) 线性对数阶 O(nlog2n) 平方阶 O(n^2) 立方阶 O(n^3) k 次方阶 O(n^k) 指数阶 O(2^n) 1、时间复杂度排序 2025-06-22 0 0 数据结构与算法 后端
查找算法----二分查找、插值查找、斐波那契查找 查找算法----二分查找、插值查找、斐波那契查找 1、二分查找 二分查找的思路分析 先确定该数组的中间的下标mid = (left+right)/2 2025-06-22 0 0 数据结构与算法 后端
递归解题核心思想 递归解题核心思想 1、递归要考虑的三个问题: 递归应该在什么时候结束? 我应该返回什么信息给上层? 在这一次的递归中,要完成什么任务? 递归每一层的功能都是一样的,所以只要解决了这三个问题,递归的问题就解决了 2025-06-22 0 0 数据结构与算法 后端
动态规划算法 1、动态规划算法 1.1、算法介绍 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法 动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解 与分治法不 2025-06-22 0 0 数据结构与算法 后端
堆排序 堆排序 1、基本介绍 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn),它也是不稳定排序 堆是具有以下性质的完全二叉树: 每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆 注意 : 没有要求结点的左孩子的值和右孩子的值的 2025-06-22 1 0 数据结构与算法 后端
排序算法----插入和希尔排序 排序算法----插入和希尔排序 1、插入排序 插入排序的基本思想:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排 序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置, 2025-06-22 1 0 数据结构与算法 后端
二叉树----顺序二叉树、线索二叉树 二叉树----顺序二叉树、线索二叉树 1、顺序二叉树 1.1、 顺序二叉树的特点 特点 顺序二叉树通常只考虑完全二叉树 </ 2025-06-22 0 0 数据结构与算法 后端
二叉排序树 二叉排序树 1、二叉排序树的介绍 二叉排序树:BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大 特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点 2025-06-22 0 0 数据结构与算法 后端
二叉树----遍历、查找、删除 二叉树----遍历、查找、删除 1、为什么需要树? 数组的查找效率高,但是插入效率低。 链表的插入效率高,查找效率低。 2、二叉树 二叉树的基本概念:每个节点最多只能由两个子节点的一种树叫做二叉树 满二叉树:如果该二叉 2025-06-22 1 0 数据结构与算法 后端
排序算法----基数排序 排序算法----基数排序 1.基本思想 基数排序的基本思想:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。 这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。 2.基数排序的代码实现 package com.yishuai.so 2025-06-22 0 0 数据结构与算法 后端
平衡二叉树(AVL树) 平衡二叉树(AVL树) 1、为什么要平衡二叉树 如果由数组{1, 2, 3, 4, 5}来构建一颗二叉排序树,得到的二叉树不仅没有体现其特点,反而还退化成了链表,且因为要判断左子树,查询效率比链表还低 2、平衡二叉树的介绍 平衡二叉树也叫平衡二 2025-06-22 1 0 数据结构与算法 后端
图的创建、遍历 图的创建、遍历 1、图的基本介绍 当我们需要表示多对多的关系时,我们就需要图 图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。结点也可以称为顶点 2025-06-22 0 0 数据结构与算法 后端