算法基础
记录一些学习的基础题
困就多睡,醒不了就别醒
我懒得一批
展开
-
7-2 信使
作者 刘昆单位 中国矿业大学徐海学院。原创 2023-12-23 16:47:06 · 712 阅读 · 1 评论 -
7-1 任务拓扑排序
作者 朱允刚单位 吉林大学一个工程被分解成n个子任务,编号为0至n-1。要完成整个工程需要完成所有的子任务。其中一些子任务必须先于另外一些子任务被完成。给定各子任务之间的先后关系,请编写程序给出一个合理的任务完成顺序,若工程不可行,程序亦能识别。原创 2023-12-23 13:33:38 · 1015 阅读 · 0 评论 -
7-2 抓住那头牛
作者 董卫萍单位 绍兴文理学院元培学院农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?原创 2023-12-17 18:17:27 · 683 阅读 · 0 评论 -
7-1 数据结构实验三 图的深度优先搜索
作者 王群芳单位 合肥师范学院以邻接矩阵作存储结构,编写程序对给定的无向图()进行深度优先遍历,并在遍历的过程中计算图G的连通分量个数及边的数目。本题限定在遍历过程中,如果同时出现多个待访问的顶点,则优先选择编号最小的一个进行访问,以顶点0为遍历起点。邻接矩阵的类型描述。原创 2023-12-15 23:57:18 · 1288 阅读 · 0 评论 -
7-1 整型关键字的散列映射
作者 DS课程组单位 浙江大学给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。原创 2023-12-08 00:26:09 · 1095 阅读 · 0 评论 -
7-1 判断是否二叉排序树
作者 usx程序设计类课程组单位 绍兴文理学院根据带虚结点的先序序列建立二叉树,然后判断其是否为二叉排序树。原创 2023-12-01 23:38:34 · 1078 阅读 · 3 评论 -
查找左边界和右边界(二分)
给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回-1 -1。原创 2023-12-01 14:03:26 · 503 阅读 · 1 评论 -
7-2 部落冲突
在一个神秘的岛屿上,有两个部落 A 和 B,部落 A 和 B 之间有一片平原。这片平原上有许多的绿洲,每个绿洲可以看做一个矩形,其边平行于坐标轴。为了避免部落之间的冲突,他们需要在平原上划定一个界线来平均分配这些绿洲。岛屿上的酋长决定让你来帮助他们找到一个公平的划分方法。具体来说,酋长想要你将这片平原分成两部分,分别归属于部落 A 和 B。划分的界线需要平行于 y 轴,并且可以通过坐标轴上的一个整数点来确定。原创 2023-11-26 16:18:51 · 549 阅读 · 1 评论 -
7-1 折半(二分)查找
本题目要求读入n个整数,然后对他们进行排序。接着输入num组数(a,b,c),其中a为需查询的数,b和c为查询的区间下标。要求运用二分查找查询a的下标并输出。如果查询失败,则输出-1.原创 2023-11-26 16:00:18 · 993 阅读 · 1 评论 -
7-2 堆的建立
所谓“堆的建立”,是指将已经存在的N个元素调整成最大堆或最小堆。原创 2023-11-17 15:46:37 · 464 阅读 · 2 评论 -
7-2 哈夫曼树
哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出哈夫曼树的带权路径长度(WPL)。原创 2023-11-10 17:04:33 · 926 阅读 · 5 评论 -
7-1 根据后序序列和中序序列确定二叉树
二叉树采用二叉链表存储,要求根据给定的后序遍历序列和中序遍历序列建立二叉树,并输出二叉树的深度及其先序遍历序列。原创 2023-11-10 15:23:26 · 938 阅读 · 4 评论 -
递归求二叉树高度、叶子结点个数、结点个数、所有子结点不为空的结点个数
void creat(BiTree &Tree)//构建二叉树int Depth(BiTree Tree)//求高度int countleaf(BiTree Tree)//叶子结点计数int count(BiTree Tree)//结点计数int countFullNodes(BiTree Tree)所有子结点不为空的结点计数其中Tree是指向二叉树根节点的指针。原创 2023-11-05 16:22:32 · 372 阅读 · 1 评论 -
用两个栈实现队列
【代码】用两个栈实现队列。原创 2023-11-03 15:30:55 · 157 阅读 · 0 评论 -
模拟双链表
现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 11 个插入的数,第 22 个插入的数,…第 n 个插入的数。原创 2023-10-21 22:33:46 · 36 阅读 · 0 评论 -
模拟单链表
现在要对该链表进行 M次操作,进行完所有操作后,从头到尾输出整个链表。:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n个数,则按照插入的时间顺序,这 n个数依次为:第 11 个插入的数,第 22 个插入的数,…第 n 个插入的数。原创 2023-10-21 22:31:04 · 39 阅读 · 1 评论 -
7-1 冒泡排序 (分数 10)
冒泡排序,将一个列表中的两个元素进行比较,并将最小的元素交换到顶部。两个元素中较小的会冒到顶部,而较大的会沉到底部,该过程将被重复执行,直到所有元素都被排序。原创 2023-10-21 12:24:36 · 1284 阅读 · 1 评论 -
快速排序算法
给定你一个长度为 n 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。原创 2023-10-21 12:29:44 · 57 阅读 · 1 评论 -
快速排序的应用(第k个数)
给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k个数。原创 2023-10-21 12:31:55 · 103 阅读 · 0 评论 -
归并排序算法
第二行包含 n个整数(所有整数均在 1∼1e9 范围内),表示整个数列。请你使用快速排序对这个数列按照从小到大进行排序。输出共一行,包含 n 个整数,表示排好序的数列。给定你一个长度为 n 的整数数列。输入共两行,第一行包含整数 n。并将排好序的数列按顺序输出。原创 2023-10-21 12:34:22 · 144 阅读 · 1 评论 -
归并排序应用(寻找逆序对的数量)
给定一个长度为 n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j个元素,如果满足 ia[j],则其为一个逆序对;否则不是。原创 2023-10-21 12:39:09 · 47 阅读 · 1 评论