自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 归并排序【东北大学oj数据结构5-2】C语言

在合并时,两个数组尾部添加最大值,即使一个数组完全遍历完毕,另一个数组仍然可以继续进行比较和合并,无需额外的边界检查。编写一个归并排序算法程序,由以下伪代码实现。您还应该报告 Merge 函数中的比较次数。sentinel是哨兵,放置一个特殊值,用于标识结束或边界,避免额外检查。在第一行,打印序列 S。两个连续的元素应该用空格字符分隔。在第一行中给出了 n。在第二行中,给出了 n 个整数。int的最大十进制是2^31-1,10^9可以。0 ≤ S 中的一个元素 ≤ 10^9。在第二行,打印比较次数。

2024-10-09 21:01:56 289

原创 穷举搜索【东北大学oj数据结构5-1】C语言

编写一个程序,读取由 n 个元素组成的序列 A 和一个整数 M,如果可以通过在 A 中的元素相加得到 M,则输出“yes”,否则输出“no”。一个元素只能使用一次。在第一行中给出了 n。在第二行中,给出了 n 个整数。在第三行中给出了 q。然后,在第四行,给出 q 个(Mi​)。给出序列 A 和 q 个问题,其中每个问题都包含Mi​。对于每个Mi​打印"yes"或"no"。1 ≤ A 中的元素 ≤ 2000。

2024-10-09 20:54:54 255

原创 分配【东北大学oj数据结构4-4】C语言

你需要从皮带输送机按顺序(i=0,1,…,n−1)得到 n 包wi​ kg的包裹。你应该将所有包裹装载到 k 辆具有共同最大载荷P 的卡车上。每辆卡车都可以从皮带输送机上装载连续的包裹(大于或等于零),序列中的包裹总重量不得超过最大载荷P。在第一行中,两个整数 n 和 k 由空格字符分隔。在接下来的n行中,分别给出了wi​。编写一个程序,读取 n、k和 wi​,并报告最大负载 P 的最小值以装载所有包裹。在一行中打印 P 的最小值。

2024-10-08 22:30:45 359

原创 字典【东北大学oj数据结构4-3】C++

find str:如果字典包含str,则打印'yes',否则打印'no'。insert str:在字典中插入一个字符串str。在接下来的 n 行中,n 条指令以上述格式给出。为一行中的每个查找指令打印"yes"或"no"。字符串由“A”、“C”、“G”或“T”组成。在第一行 n 中,给出了指令的数量。1 ≤ 字符串长度 ≤ 12。

2024-10-08 22:26:11 256

原创 二分查找【东北大学oj数据结构4-2】C语言

给定一个由 n 个整数组成的序列 S 和一个由不同的 q 个整数组成的序列 T。编写一个程序,输出 C,即既在序列 T 中也在集合 S 中的整数个数。在第一行中给出了 n。在第二行中,给出了 n 个整数。在第三行中给出了 q。然后,在第四行,给出 q 个整数。0 ≤ S 中的一个元素 ≤10^9。0 ≤ T 中的一个元素 ≤10^9。S中的元素按升序排列。

2024-10-07 20:46:03 222

原创 线性查找【东北大学oj数据结构4-1】C语言

给定一个由 n 个整数组成的序列 S 和一个由不同的 q 个整数组成的序列 T。编写一个程序,输出 C,即既在序列 T 中也在集合 S 中的整数个数。在第一行中给出了 n。在第二行中,给出了 n 个整数。在第三行中给出了 q。然后,在第四行,给出 q 个整数。0 ≤ S 中的一个元素 ≤10^9。0 ≤ T 中的一个元素 ≤10^9。注意计算数量是没有重复数字的。

2024-10-07 20:44:22 94

原创 横截面图上的区域【东北大学oj数据结构3-4】C++

你的任务是模拟洪水灾害。对于给定的横截面图,给出淹没部分的面积。假设该地区不断地下雨,而从该地区溢出的水正在落入两侧的海中。例如,对于上面的横截面图,雨水将产生洪水,其面积分别为 4、2、1、19 和 9。

2024-10-07 20:41:48 380

原创 双向链表【东北大学oj数据结构3-3】C语言

当给定 delete、deleteFirst 或 deleteLast 指令时,列表中有一个或多个元素。delete x:从链表中删除第一个键为 x 的元素。如果不存在这样的元素,则什么都不做。接下来的 n 行给出了n个指令。完成所有指令后,依次输出链表中的键。insert x:在链表的开头添加一个键为 x 的元素。deleteFirst:删除列表中的第一个元素。deleteLast:删除列表中的最后一个元素。指令过程中链表的元素个数不超过$10^6$个。实现接受以下指令的双向链表。删除指令不超过20条。

2024-10-07 20:34:27 244

原创 队列【东北大学oj数据结构3-2】C语言

队列中有 n 个进程。每个进程都有namei​和timei​。循环调度程序为每个进程提供一个时间段(一个时隙),如果到那时它没有完成,则中断该进程。进程被恢复并移动到队列的末尾,然后调度程序处理队列中的下一个进程。例如,我们有以下队列,时间段长度为 100 毫秒。在接下来的 n 行中,给出了 n 个进程的名称和时间。首先,进程 A 被处理 100 毫秒,然后进程移动到队列末尾,剩余时间(50 毫秒)。在第一行中,进程数 n 和时隙 q 由单个空格分隔。对于每个进程,按顺序打印其名称和进程完成的时间。

2024-10-07 20:31:56 353

原创 栈-逆波兰表达法【东北大学oj数据结构3-1】C语言

逆波兰表示法是一种表示法,其中每个运算符都在其所有操作数的后面出现。例如,表达式(1+2)×(5+4)可以表示为逆波兰表达式1 2 + 5 4 + ×。逆波兰表示法的优点之一是它没有括号。编写一个程序,读取逆波兰表示法中的表达式并打印计算结果。逆波兰表示法中的表达式是使用栈计算的。要计算表达式,程序应按顺序读取符号。如果符号是操作数,则应将相应的值压入栈。另一方面,如果符号是一个运算符,程序应该从堆栈中弹出两个元素,执行相应的操作,然后将结果压入栈。程序应重复此操作。

2024-10-07 20:27:51 160

原创 希尔排序【东北大学oj数据结构2-4】C语言

的序列G,对于G中每一个元素,依次执行insertionSort(A, n, g)。因此,其也被称为“缩小增量排序”。大量研究表明,不同的G序列的选取对于排序的性能有着显著的影响。G序列由希尔排序增量序列的一部分逆序得到,比较著名的增量序列有Shell增量序列、Hibbard增量序列、Knuth增量序列、Gonnet增量序列、Sedgewick增量序列等。本题要求你使用Knuth增量序列编写这个排序程序,其递推公式为:填写上面的伪代码中的?来完成这个程序。

2024-10-07 20:24:43 343

原创 稳定的排序【东北大学oj数据结构2-3】C语言

这里,输出稳定就意味着:具有相同值的卡片以与它们在输入中相同的顺序出现在输出中。您的任务是编写一个程序,分别使用冒泡排序算法和选择排序算法按值对给定的一组卡片进行排序。在第一行,打印由冒泡排序算法提供的排列好的卡片。在第三行,打印由选择排序算法提供的排列好的卡片。两张连续的卡片用空格字符隔开。在第四行,打印此输出的稳定性(“Stable”或“Not stable”)。在第二行,打印此输出的稳定性(“Stable”或“Not stable”)。第一行包含一个整数 N(1 ≤ N ≤ 36),即卡片的数量。

2024-10-07 20:20:11 215

原创 选择排序【东北大学oj数据结构2-2】C语言

编写一个选择排序算法程序,按升序对序列 A 进行排序。输入的第一行包括一个整数 N(1 ≤ N ≤ 100),即序列中元素的数量。你还应该打印出 i​=mini时伪代码第 7 行中定义的交换操作的次数。在第一行,请打印已排序的序列。序列的两个连续元素应由空格字符分隔。在第二行中,序列的 N 个元素由空格字符分隔。请注意,数组元素的索引从0开始。在第二行,请打印交换操作的次数。输出由 2 行组成。

2024-10-07 20:17:00 130

原创 冒泡排序【东北大学oj数据结构2-1】C语言

编写一个冒泡排序算法程序,按升序对序列 A 进行排序。输入的第一行包括一个整数 N(1 ≤ N ≤ 100),即序列中元素的数量。在第一行,请打印已排序的序列。序列的两个连续元素应由空格字符分隔。您的程序还应该打印伪代码第 5 行中定义的交换操作的次数。在第二行中,序列的 N 个元素由空格字符分隔。请注意,数组元素的索引从0开始。在第二行,请打印交换操作的次数。输出由 2 行组成。

2024-10-07 20:13:44 115

原创 最大利润【东北大学oj数据结构1-4】C语言

您可以从外汇保证金交易中获取利润。例如,如果您以每美元 100 日元的价格买入 1000 美元,并以每美元 108 日元的价格卖出,则可以获得 (108 - 100) × 1000 = 8000 日元。第一行包含一个整数n(2≤n≤200000)。接下来n行,Rt​(t=0,1,2,...,n−1)按顺序给出,1≤Rt​≤10^9。你需要编写一个程序,读取一种货币在 t 时刻的价值Rt​,然后输出Rj​−Ri​的最大值(j>i)。在一行中输出最大值。

2024-10-07 20:05:22 182

原创 质数【东北大学oj数据结构1-3】C语言

素数是一个自然数,它恰好有两个不同的自然数除数:1 和它本身。例如,前四个质数是:2、3、5 和 7。编写一个程序,读取 N 个整数的列表并打印该列表中素数的个数。第一行包含一个整数 N,即列表中元素的数量。N 个数字在以下几行中给出。2≤列表中的元素≤10^8。打印给定列表中素数的数量。

2024-10-07 20:02:02 226

原创 最大公约数【东北大学oj数据结构1-2】C语言

编写一个程序,找出两个自然数 a 和 b 的最大公约数。a 和 b 在由单个空格分隔的行中给出。输出 a 和 b 的最大公约数。

2024-10-07 19:58:20 170

原创 插入排序【东北大学oj数据结构1-1】C语言

编写一个插入排序算法程序,按升序对序列 A 进行排序。输出由 N 行组成。请为每一步输出一行表示当前序列。序列的元素应由单个空格分隔。为了说明算法,您的程序应该跟踪每个步骤的中间结果。输入的第一行包括一个整数 N,即序列中元素的数量。在第二行中,序列的 N 个元素由单个空格分隔。请注意,数组元素的索引从0开始。

2024-09-27 22:22:20 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除