红黑树、B/B+树、Hash是非常常用的数据结构,特别是布隆过滤器。这三个数据结构都是具备查找功能的,是一种强查找的数据结构。比如将它们用于存储一个集合,可以快速查找到指定的数据。排序的数据结构,在平常用的时候,基本上...
collections模块提供了额外的数据结构,如Counter, defaultdict和namedtuple。这些结构可以让你的代码更简洁、更高效。
思考:那既然 ArrayList<? extends Number> 可以代表 ArrayList< Integer > 或 ArrayList< Float >,为什么不能向其中加入 Integer、Float 等对象呢?
Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。其本质是JVM得到Class对象之后,再通过Class对象进行反编译,从而获取对象的各种信息。...
接下来我们要介绍的是排序算法中极为标志性,并且经常在教材中作为经典案例出现的——冒泡排序。
选择排序的思想与插入排序其实有异曲同工之处,它们都会对数据进行比较和交换,但是它们也还是有很大的差别:插入排序是两两元素之间进行比较,而选择排序是将最值的元素同其他元素依次进行比较,从而按照最大(或最小)、第二大、...
上一篇文章我们讲到了解决宝藏排序的三种基本排序方法,这篇文章我们深入探讨一下两种进阶排序:快速排序和归并排序。让我们拿起键盘,一起敲起来吧!...
希尔排序(Shell Sort)是一种改进的插入排序算法,希尔排序的创造者Donald Shell想出了这个极具创造力的改进。其时间复杂度取决于步长序列(gap)的选择。我们在插入排序中,会发现是对整体数据直接进行了统一的插入排序,每个数...
插入排序的算法思想其实很容易理解,它秉持着一个不变的循环:比较->交换->比较->交换…因为我们排序最终的目的是要得到递增或者递减的数据,那么在原有的数据中,我们可以将数据依次两两进行比较:...
散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(O(1)),但最坏情况下可能会退化到(O(n))。...