数据结构与算法🚀
复习考研为主,欧力给!
isxhyeah
满山猿猴,我腚最红耶!!!
展开
-
算法之线性表1.1.1.(9)链表递增有序
有一个带头结点的单链表L,设计一个算法使其元素递增有序。原创 2023-08-01 23:23:10 · 467 阅读 · 0 评论 -
算法之线性表1.1.1(8)就地逆置
试编写算法将头结点的单链表就地逆置,所谓“就地”是指辅助空间复杂度为O(1)。原创 2023-07-28 21:28:00 · 530 阅读 · 0 评论 -
算法之线性表1.1.1(7)带头结点链表的反向输出
设L为带头结点的单链表,编写算法实现从尾到头反向输出每个节点的值。原创 2023-07-26 23:14:04 · 294 阅读 · 0 评论 -
算法之线性表1.1.1(6)删除值为x的结点
设计一个递归算法,删除不带头结点的单链表中所有值为x的结点。原创 2023-07-07 20:03:09 · 348 阅读 · 0 评论 -
算法之线性表1.1.1(5)查找x
线性表(a1,a2,a3,...,an)中的元素递增有序且按顺序存储于计算机内。要求设计一个算法,完成用最少时间在表中查找数值为x的元素,若找到,则将其与后继元素位置相交换,若找不到,则将其有序插入。原创 2023-07-06 21:22:56 · 264 阅读 · 0 评论 -
算法之线性表1.1.1(4)
已知在一维数组A[m + n]中依次存放两个线性表(a1,a2,a3,……,am)和(b1,b2,b3,……,bn)。 试编写一个函数,将数组中两个顺序表的位置互换,即将(b1,b2,b3,……,bn)放在(a1,a2,a3,……,am)的前面。原创 2023-07-06 21:04:57 · 416 阅读 · 0 评论 -
算法之线性表1.1.1(3)合并顺序表
将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表。原创 2023-07-05 23:22:11 · 196 阅读 · 0 评论 -
算法之线性表1.1.1(2)删除重复元素
从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同。原创 2023-07-05 23:04:46 · 547 阅读 · 0 评论 -
算法之线性表1.1.1(1)逆置元素
设计一个高效算法,将顺序表L的所有元素逆置 要求算法的空间复杂度为O(1)。原创 2023-07-05 22:43:05 · 259 阅读 · 0 评论 -
排序之堆排序
首先,我们定义了heapify函数用来维护一个二叉堆的性质。它的参数包括目标数组、数组长度以及目标节点的索引。在heapify函数中,我们将目标节点、其左子节点和右子节点三者中的最大值作为新的根节点,并递归地对新的根节点进行堆化操作。然后,我们定义了heapSort函数用于进行堆排序。首先在heapSort函数中,我们从数组的中间位置开始往前遍历,对每个节点都调用一次heapify函数,这样就可以将整个数组构建为一个大根堆。原创 2023-06-17 22:20:21 · 588 阅读 · 0 评论 -
排序之冒泡排序
比较相邻的两个元素,如果第一个元素比第二个元素大,则交换它们的位置。对每一对相邻的元素做同样的工作,从开始到结尾,这样每一轮过后,最后的元素都是当前未排序元素中的最大值,因此每次需要将待排序的元素个数减少一。在函数内部,我们使用两层循环:外层循环遍历整个数组,内层循环将相邻的两个元素进行比较。如果前面的元素比后面的元素大,则交换它们的位置。这样,每一轮过后,最后一个元素就是当前未排序元素中的最大值。在内层循环结束之后,我们需要判断是否发生了交换。原创 2023-06-13 22:47:39 · 162 阅读 · 0 评论 -
排序之快速排序
需要注意的是,快速排序的时间复杂度与基准元素的选择有关。如果每次选择的基准元素都恰好是中位数,那么最坏情况下的时间复杂度为 O(n^2),但这种情况发生的概率非常小。在实际应用中,通常会采用随机选取基准元素的方式来避免最坏情况的发生,从而保证快速排序的平均时间复杂度为 O(n log n)。在快速排序中,我们选择一个基准元素(通常是数组的第一个或最后一个元素),将数组中小于等于基准元素的元素放在基准元素的左侧,大于基准元素的元素放在基准元素的右侧,然后递归地对左右两个子数组进行同样的操作。原创 2023-06-13 22:07:42 · 375 阅读 · 0 评论 -
排序之希尔排序
希尔排序的基本思想是:先将待排序的数组按照一定的步长进行分组,然后对每组中的元素进行插入排序。随着步长逐渐减小,每组包含的元素越来越少,当步长减小到1时,整个数组被分成了一组,排序完成。在函数内部,我们首先计算出数组的长度 n,并初始化步长 gap 为 n 的一半。最后,我们将步长除以2,并继续循环,直到步长为1时,排序完成。原创 2023-06-13 22:36:56 · 649 阅读 · 0 评论 -
最短路径——Dijkstra算法
Dijkstra算法求最短路径。原创 2023-06-08 17:34:34 · 227 阅读 · 0 评论 -
链表与指针的应用
1.找出最小结点 2.找出相交的起始结点原创 2023-05-28 12:37:47 · 87 阅读 · 0 评论 -
第四章 二叉树
二叉树原创 2022-09-03 21:23:42 · 474 阅读 · 0 评论 -
第三章 矩阵压缩
矩阵原创 2022-08-07 15:07:40 · 213 阅读 · 0 评论 -
第三章 队列
队列;循环队列;双端队列;链队原创 2022-07-27 15:29:16 · 263 阅读 · 0 评论 -
第三章 栈
栈、共享栈、链栈、栈的应用(前中后缀表达式)原创 2022-07-21 20:51:30 · 592 阅读 · 0 评论 -
第二章 线性表
顺序表,单链表,双链表原创 2022-07-16 21:56:11 · 123 阅读 · 0 评论 -
第一章 绪论
一些小知识点...原创 2022-07-15 22:30:37 · 279 阅读 · 0 评论