算法和数据结构
算法和数据结构是一个好程序员的垫脚石。
-
如何实现一个支持动态扩展的循环队列
我们利用动态数组快速的实现了队列这种基础的数据结构。但是,由于底层是动态数组存储,每次出队操作(删除数组的第1个元素)导致后面所有的元素都需要向前移动一个位置,进而导致出队操作的均摊时间复杂度是O(n)。显然,这不是我们…
-
如何实现队列这种数据结构
队列依然是一种线性数据结构; 规定只能在两端操作的数据结构,不能操作中间元素; 先进先出,First In First Out;
-
栈的应用:LeetCode第20题实现括号匹配
栈这种数据结构的具体应用场景:如何判定一个给定的字符串是否包含匹配的括号,对于包含“()”、"()[]{}"、"{[]}",形式的字符串,我们认为其是一个有效的括号,成对出现。对于“(]”则认为其不是有效的括号对。具体见…
-
如何实现栈这种数据结构
如何实现栈这种数据结构?
-
支持动态扩容的数组及复杂度分析
如何实现一个这次动态扩容的数组?如何分析它的时间复杂度?
-
支持泛型类的数组实现
如何手工实现一个支持泛型类型的数组?
-
数组这种数据结构的基本实现
数组的下标为什么从0开始?数组原来不只是一种数据类型,也是一种数据结构。
-
插入排序算法
什么是插入排序算法?如何用Java实现?它的时间复杂度是多少?和选择排序算法相比,它有什么优势?
-
选择排序算法
什么是选择排序算法?如何用Java来实现?如何改造成带泛型约束的选择排序算法?它的时间复杂度是多少?
-
线性查找算法
什么是线性查找算法?它的时间复杂度是多少?如何用Java代码实现?以及代码改良和扩展、性能测试。