
数据结构
文章平均质量分 88
一些关于数据结构
薅你两根毛
努力努力努力
奴隶奴隶奴隶
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
堆排序详细讲解(一文足矣JAVA)
在计算机科学中,堆(Heap)是一种特殊的数据结构,通常是一个可以被看作近似完全二叉树的数组对象。在堆中,父节点的值总是大于或等于子节点的值(大顶堆),或者父节点的值总是小于或等于子节点的值(小顶堆)。原创 2023-12-05 11:30:17 · 2194 阅读 · 0 评论 -
希尔排序(Java)
希尔排序(Shell Sort)是一种插入排序的改进算法,它通过比较距离较远的元素交换位置,从而实现数据局部的较小规模排序,逐渐减小元素之间的间隔,最终完成整个序列的排序。希尔排序的主要思想是通过预排序的子序列最终达到整体有序。原创 2023-12-03 10:37:50 · 753 阅读 · 0 评论 -
怎么防止死锁
死锁(Deadlock)是指在计算机科学和操作系统中的一种状态,其中两个或多个进程无法继续执行,因为每个进程都在等待其他进程释放资源,而这些资源却永远无法被释放。死锁是一种严重的系统问题,因为它导致一组进程无法继续执行,从而降低了系统的效率和可用性。死锁通常涉及系统中的有限资源,这些资源只能由一个进程使用。这些资源可以是硬件设备(如打印机、磁盘驱动器)或软件资源(如内存、文件)。为了避免死锁,操作系统必须能够有效地管理这些资源的分配和释放。原创 2023-12-03 10:22:11 · 1627 阅读 · 0 评论 -
二分查找(Java) 详细讲解 一文足矣
二分查找,也称为折半查找,是一种在有序数组中查找特定元素的高效算法。其基本思想是每次将查找范围缩小一半,直到找到目标元素或确定目标元素不存在。这段代码演示了如何使用二分查找在有序数组中查找目标元素。最后输出结果,指示目标元素是否存在以及其索引位置。方法中,我们定义了一个有序数组。,并在其中查找目标元素。原创 2023-11-25 15:33:37 · 4317 阅读 · 0 评论 -
贪心算法个人见解
贪心算法(Greedy Algorithm)是一种基于贪心策略的算法范式,它在每一步选择中都采取当前状态下的最优选择,而不考虑全局最优解。贪心算法通常适用于那些问题,局部最优策略能够导致全局最优解的情况。原创 2023-11-24 15:05:26 · 1667 阅读 · 0 评论 -
平衡二叉树 (简单易懂)
平衡二叉树(Balanced Binary Tree)是一种特殊的二叉搜索树(Binary Search Tree,BST),它在插入和删除节点时通过自平衡的方式来维持树的平衡性。平衡性的维护可以确保树的高度保持在较小的范围内,从而保证了树的基本操作(例如搜索、插入和删除)的平均时间复杂度为 O(log n)。当一个节点的左子树比右子树高度高,且左子树的右子树高度不低于左子树的左子树时,进行右旋。平衡二叉树的平衡性质确保了树的高度始终保持在较小的范围内,从而保持了较快的搜索、插入和删除操作。原创 2023-11-24 10:04:35 · 1270 阅读 · 0 评论 -
算法基础:KMP算法详细详解
KMP算法(Knuth-Morris-Pratt算法)是一种用于字符串匹配的经典算法,它能够在文本串和模式串不匹配的情况下,通过已经匹配的部分信息,避免将模式串移动到所有可能的位置进行匹配,从而提高匹配效率。相较于暴力算法的O((n-m+1) * m)来说,在目标串很长而模式串较短的情况下,KMP算法的性能更好。以O(m+n)的时间复杂度,在目标串中找到模式串,并返回模式串在目标串中的第一个字符的索引位置。KMP算法的时间复杂度为O(m + n),其中m是模式串的长度,n是目标串的长度。原创 2023-11-22 21:28:29 · 2249 阅读 · 0 评论 -
我对双指针算法认知
双指针算法是一种常用于解决数组或链表中的问题的算法思想。它的基本思想是使用两个指针在数组或链表中相互协作,以解决问题。双指针算法通常分为两种类型:快慢指针和左右指针。下面分别详细讲解这两种双指针算法。原创 2023-11-22 14:53:04 · 1724 阅读 · 0 评论 -
B树与B+树的区别
B树(B-tree)和B+树(B+ tree)都是一种常见的自平衡树数据结构,用于存储有序的数据。它们在数据库系统中被广泛应用,用于索引的实现。总体而言,B树和B+树都有各自的优势和适用场景。B+树更适用于数据库索引等需要范围查询和遍历操作的场景,而B树更加灵活,适用于一些不同的应用场景。原创 2023-11-19 21:00:56 · 1257 阅读 · 0 评论