
SDUTACM《数据结构》专题1--顺序表
SDUTACM《数据结构》专题1--顺序表
程序员豪仔
一个任何事物,除了编程,都喜欢尝试的程序员,豪仔。
展开
-
I - 顺序表应用4-2:元素位置互换之逆置算法(数据改进)
Description一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N)、空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。注意:交换操作会有多次,每次交换都是在上次交换完成后的顺序表中进行。Input第一行输入整数len(1<=len<=10000原创 2022-04-15 20:50:59 · 98 阅读 · 0 评论 -
H - 顺序表应用8:最大子段和之动态规划法
Description给定n(1<=n<=100000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。注原创 2022-04-15 19:38:31 · 90 阅读 · 0 评论 -
G - 顺序表应用6:有序顺序表查询
Description顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!"。Input第一行输入整数n (1 <= n <= 100000),表示顺序表的元素个数;第二行依次输入n个各不相同的有序非负整数,代表表里的元素;第三行输入整数t (1 <= t <= 100000),代表要查询的次数;第四行依次输入t个非负整数,代表每次要查询的数值。原创 2022-04-14 21:46:41 · 134 阅读 · 0 评论 -
F - 顺序表应用7:最大子段和之分治递归法
Description给定n(1<=n<=50000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。注意原创 2022-04-14 21:20:05 · 147 阅读 · 0 评论 -
E - 顺序表应用5:有序顺序表归并
Description已知顺序表A与B是两个有序的顺序表,其中存放的数据元素皆为普通整型,将A与B表归并为C表,要求C表包含了A、B表里所有元素,并且C表仍然保持有序。Input输入分为三行:第一行输入m、n(1<=m,n<=10000)的值,即为表A、B的元素个数;第二行输入m个有序的整数,即为表A的每一个元素;第三行输入n个有序的整数,即为表B的每一个元素;Output输出为一行,即将表A、B合并为表C后,依次输出表C所存放的元素。SampleInput.原创 2022-04-14 19:56:22 · 146 阅读 · 0 评论 -
D - 顺序表应用3:元素位置互换之移位算法
Description一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),借助元素移位的方式,设计一个空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。Input第一行输入整数n,代表下原创 2022-04-14 18:04:37 · 241 阅读 · 0 评论 -
C - 顺序表应用1:多余元素删除之移位算法
Description一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。要求:1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除;Input第一行输入整数n,代表下面有n行输入;之原创 2022-04-14 16:55:11 · 362 阅读 · 0 评论 -
B - 顺序表应用2:多余元素删除之建表算法
Description一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。要求:1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;2、本题的目标是熟悉在顺序表原表空间基础上建新表的算法,要在原顺序表空间的基础上完成完成删除,建表过程不得开辟新的表空间;3、不得采原创 2022-04-14 16:11:36 · 196 阅读 · 0 评论 -
A - 顺序表应用4:元素位置互换之逆置算法
Description一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N)、空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。Input第一行输入整数n,代表原创 2022-04-13 16:59:39 · 269 阅读 · 0 评论