数据结构之顺序表
数据结构之顺序表 数据结构之顺序表线性表定义线性表相关概念 顺序表概念顺序表特点适用场景局限性 顺序表基本操作基本操作实现代码 顺表应用案例应用注意实现多项式加法 数据结构之顺序表 线性表定义 线性表是由 n (n ≥ 0) 个具有相同特征的数据元素组成的有限序列。记作:(a₁, a₂, …, aᵢ₋₁, aᵢ, aᵢ₊₁, …, aₙ) 线性表相关概念 **直接前驱元素:**对于元素 aᵢ,若存在 a...
《数据结构》学习系列——图(下)
系列文章目录 目录 最短路径问题 背景 交通路线图: 顶点:城市边:城市之间的交通路线 从城市 v 0 v_0 v0 出发到达其他城市至少要经过几条路线? 从城市 v 0 v_0 v0 出发到达其他城市的最短路线有多长? 两顶点间可能存在多条路径 每条路径所经过的边数可能不同每条路径上的各边权值之和可能不同 从一个指定顶点到达另一个指定顶点的路径上各边权值之和为最小的路径被称为最短路径,这类问题亦称...
《数据结构》学习系列——排序(下)
序,利用了之前的比较结果但对于n个待排元素,锦标赛算法需要至少2n-1个结点来,存放比赛树,故这是一个拿空间换时间的算法 堆排序 完全二叉树中任意结点的关键词大于等于它的两个孩子结构的关键词。把这样的数据结构称为堆(大根堆)大根堆,小根堆 大根堆中根结点的关键词最大小根堆中根结点的关键词最小 思想 如果数组R中存放了堆,那么R[1]是最大的记录,将R[1]和R[n]的交换,使得最大记录放在R[n]的位置。...
【数据结构与算法】-空间复杂度
空间复杂度概述 空间复杂度是衡量算法在运行过程中临时占用存储空间大小的一个重要指标。它描述了算法所需的额外存储空间与输入数据规模之间的关系。空间复杂度通常也用大O表示法(Big O notation)来表示。 常见的空间复杂度 O(1) - 常数空间复杂度 描述:无论输入数据规模如何,算法所需的额外存储空间都是常数。示例:简单的数学运算。int add(int a, int b) { return a ...
【数据结构和算法】-时间复杂度
时间复杂度概述 时间复杂度是衡量算法执行效率的一个重要指标,它描述了算法运行时间与输入数据规模之间的关系。时间复杂度通常用大O表示法(Big O notation)来表示。 常见的时间复杂度 O(1) - 常数时间复杂度 描述:无论输入数据规模如何,算法的执行时间都是常数。示例:访问数组中的某个元素。int[] array = {1, 2, 3, 4, 5};int element = array[3...
python中常见的8种数据结构之一元组
元组(tuple)是Python中常见的数据结构之一,它是一个有序、不可变的序列。元组使用圆括号来表示,可以包含任意类型的元素,包括数字、字符串、列表等。元组的元素可以通过索引访问,但是不能修改。 下面是一些常见的操作元组的方法: 1. 创建元组: tup = (1, 2, 3) 2. 访问元组元素: print(tup[0]) # 输出:1 3. 遍历元组: for item in tup: print...
《数据结构》学习系列——排序(上)
系列文章目录 目录 排序问题的基本概念 排序(sorting),也被称为分类、整序等,指按规定的顺序排列一个给定对象集合中的诸元素记录: R 1 , R 2 , . . . , R n R_1,R_2,...,R_n R1,R2,...,Rn文件:K待排序数据对象的有限集合存储:数组和链表关键词:K1,K2,…,Kn,用来排序的属性域 通常数据对象由多个属性域,即多个数据成员组成,其中有一个属性域...
【数据结构】堆:TOK问题
文章目录 前言问题引入一、TopK 问题 是什么?二、TopK 问题解决思路2.1 TopK 思路2.2 创建数据集2.4 TOP-K问题求解向下调整法Top-K问题求解 2.5 验证结果 前言 问题引入 TopK 问题 (在一堆数据里面找到前 K 个最大 / 最小的数)。 一、TopK 问题 是什么? 生活中也有很多实例,比如某外卖软件中有上千家店铺,我想选出当地好评最多的十家烤肉店,这时我们不用对所...
【PTA】4-2 树的同构【数据结构】
给定两棵树 T1 和 T2。如果 T1 可以通过若干次左右孩子互换就变成 T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图一 图二 现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵二叉树的信息。对于每棵树,首先在一行中给出一个非负整数 n (≤10),即该树的结点...
数据结构编程实践20讲(Python版)—17散列
逆的,即从散列值无法反推原始输入。这使得散列在数据安全和加密中非常有用。 敏感性: 微小的输入变化会导致哈希值的大幅变化。这一特性被称为“雪崩效应”。 应用领域 散列在多个领域中有广泛的应用,包括: 数据结构: 哈希表:使用散列函数将键映射到数组中的位置,实现快速的查找、插入和删除操作。哈希表广泛用于实现集合和字典等数据结构。 密码学: 数字签名:用于创建数字签名,通过散列原始消息并对其哈希值进行加密,以...