数据结构之线性结构和链表基础

线性结构简介

数据是散落在内存荒原上的沙砾,人类文明用线性结构在数字世界中铺就了第一条道路。在算法世界的版图里,线性结构是所有复杂架构的基石。它的定义看似朴素:数据元素之间存在着 “一对一” 的关系,除了首尾,每个节点都有且仅有一个前驱和后继。然而,在这种极简的几何关系背后,隐藏着计算机科学中最深刻的博弈——物理连续性与逻辑灵活性之间的较量。这种线性结构的演化,本质上是人类在访问速度与组织成本之间寻找平衡点的过程。无论是栈的内敛、队列的规整,还是哈希表的奔放,其底层逻辑都逃不开数组与链表这两大元思想的纠缠。


哈希查找法

哈希查找简介

如果说二分查找靠的是层层 “精密的筛选”,那么哈希查找就是 “瞬间移动”。它在理想情况下的时间复杂度是惊人的 $O(1)$

二分查找法

什么是二分查找

要解决的问题

在海量的数据中,如何以最快的速度定位到一个特定的目标? 如果数据是无序的,我们只能像 “大海捞针” 一样逐个检查(线性查找);但如果数据是有序的,我们就可以利用位置关系,成倍地缩小搜索范围。


高级排序算法

高级排序

希尔排序

排序原理:

  1. 选定一个增长量 h,按照增长量 h 作为数据分组的依据,对数据进行分组;
  2. 对分好组的每一组数据完成插入排序;
  3. 减小增长量,最小减为 1,重复第二步操作。