排序算法四:梳排序 数据结构和算法

排序算法四:梳排序

一、梳排序简介 梳排序是冒泡排序的一种优化方案,主要是为了解决冒泡排序中的尾部小数值问题。它主要的思想是通过比较元素和固定步长位置上的数据,先进行部分优化,然后逐步减少步长,以此来对数据进行预处理。 ...
阅读全文
数据结构之B树 数据结构和算法

数据结构之B树

一、B树的基本概念 B树是一种多叉树,被广泛应用于数据库索引中。它也是一种特殊的搜索树,和搜索树最大的不同在于它的每个节点都包含了n个关键字和n+1个指向子节点的指针。它的表现形式为: B树的特点: ...
阅读全文
234-回文链表 数据结构和算法

234-回文链表

来源:力扣(LeetCode) 链接:234. 回文链表 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 一、题目描述 请判断一个链表是否为回文链表。 示例 1: 输入:1-&g...
阅读全文
排序算法三:堆排序 数据结构和算法

排序算法三:堆排序

一、堆排序原理 通过最大堆的性质可以知道:一个堆中最大的元素总是在堆顶的,即数组下标0的位置。基于这一点,我们可以每次都把堆中的最大值提取出来,放到当前数组的后面。然后重新构建最大堆,重复这个过程,以...
阅读全文
数据结构之堆 数据结构和算法

数据结构之堆

一、堆 堆是一种数据结构,通常通常所说的堆即二叉堆。二叉堆是一个数组,可以被看成一个完全二叉树,如下图所示: 他在数组中的表现形式为: 通过数组很容易得到每个父节点和其子节点的关系,假设数组的起始下标...
阅读全文
排序算法七:计数排序 数据结构和算法

排序算法七:计数排序

一、计数排序 其基本思想为:假设n个输入的元素中的每一个都是在0到k之间的一个整数,对于每一个输入元素x,确定小于x的元素个数,直接把x放在它输出的数组中的位置上。例如有17个元素小于x,则x就应该在...
阅读全文
581-最短无序连续子数组 数据结构和算法

581-最短无序连续子数组

来源:力扣(LeetCode) 链接:581. 最短无序连续子数组,著作权归领扣网络所有。 一、题目描述 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变...
阅读全文
113-路径总和 II 数据结构和算法

113-路径总和 II

来源:力扣(LeetCode) 链接:113. 路径总和 II 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 一、题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节...
阅读全文