数据结构是计算机存储、组织数据的方式。 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
堆(Heap)是一种特殊的树形数据结构,通常用作优先[队列]。堆排序算法利用了堆的性质来实现排序。堆的性质总结如下:
队列是咱们开发中经常使用到的一种数据结构,它与栈的结构类似。然而栈是后进先出,而队列是先进先出,说的专业一点就是FIFO。在生活中到处都可以找到队列的,最常见的...
红黑树、B/B+树、Hash是非常常用的数据结构,特别是布隆过滤器。这三个数据结构都是具备查找功能的,是一种强查找的数据结构。比如将它们用于存储一个集合,可以快...
collections模块提供了额外的数据结构,如Counter, defaultdict和namedtuple。这些结构可以让你的代码更简洁、更高效。
思考:那既然 ArrayList<? extends Number> 可以代表 ArrayList< Integer > 或 ArrayList< Float ...
Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。其本质是JVM得到Class对象之后,再通过Class对象进行...
接下来我们要介绍的是排序算法中极为标志性,并且经常在教材中作为经典案例出现的——冒泡排序。
选择排序的思想与插入排序其实有异曲同工之处,它们都会对数据进行比较和交换,但是它们也还是有很大的差别:插入排序是两两元素之间进行比较,而选择排序是将最值的元素同...
上一篇文章我们讲到了解决宝藏排序的三种基本排序方法,这篇文章我们深入探讨一下两种进阶排序:快速排序和归并排序。让我们拿起键盘,一起敲起来吧!
希尔排序(Shell Sort)是一种改进的插入排序算法,希尔排序的创造者Donald Shell想出了这个极具创造力的改进。其时间复杂度取决于步长序列(gap...
插入排序的算法思想其实很容易理解,它秉持着一个不变的循环:比较->交换->比较->交换…因为我们排序最终的目的是要得到递增或者递减的数据,那么在原有的数据中,我...
散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(O(1)),但最坏情况下可能会退化到(O...
大家如果有经常看我的C语言实现数据结构的内容的话,会发现在有些操作中我是通过assert对形参进行断言的方式来检查空指针,有些则是通过条件语句的方式来检测空指针...
在今天的算法实现中,我们同样还是采用二叉链表的存储结构来实现二叉树的基本操作,对应的数据结构类型如下所示:
基本操作作为数据结构的三要素之一,对数据结构的具体实现是必不可少的。对于任何一种数据结构而言,都需要有以下几种基本操作:
在前面我们有提到过,对于不同的数据结构而言,它们的区别主要体现在对数据结构中的数据元素的具体操作上。因此不管是逻辑结构还是存储结构,都是为了能够方便程序猿对这些...
今天的内容咱们就介绍到这里。在今天的内容中,我们知道了什么是二叉树,以及二叉树的一些基本性质,我们还认识了4种特殊的二叉树——满二叉树、完全二叉树、BST和AV...
我们之前学习到的线性表、栈和队列、数组、串这些数据结构,它们的元素在逻辑上都是呈现线性关系的,也就是结构中的元素与元素之间都是一对一的关系,但是现在我们要学习的...
在上一篇内容中我们详细介绍了KMP算法的基础知识点,相信大家在阅读完后应该对前缀、后缀、PM值、next数组这些基本概念有了一个初步的了解。但是在上一篇内容中我...
在上一篇内容中,我们详细介绍了朴素模式匹配算法及其实现。朴素模式匹配算法简单的理解就是将主串中以每一个位序上的元素为开头的子串与模式串进行匹配,直到匹配成功,或...