第1题
A、将n个元素从小到大排序
B、从线性表中删除第i个元素(1≤i≤n)
C、查找第i个元素(1≤i≤n)
D、在第i个元素(1≤i≤n)后插人一个新元素
第2题
规则I:每次只能移动1个圆盘:
规则II:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
规则III:任何时刻都不允许将同色圆盘叠放在一起:
规则IV:在满足移动规则I~III的前提下,可将圆盘移至A、B、C中任一塔座上.
试设计一个算法,用最少的移动次数将塔座A上的n个圆盘移到塔座B上,并仍按同样顺序叠置.
算法设计:对于给定的正整数n,计算最优移动方案.
数据输入:由文件input.txt给出输入数据.第1行是给定的正整数no.
结果输出:将计算出的最优移动方案输出到文件output.txt.文件的每行由一个正整数k
和2个字符c1和c2组成,表示将第k个圆盘从塔座c1移到塔座c2上.
第3题
问题描述:设有n个程序{1,2,...,n}要存放在长度为1的磁带上.程序i存放在磁带上的长度是li(1≤i≤n).程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序.
算法设计:对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数.
数据输入:由文件input.txt给出输入数据.第1行是2个正整数,分别表示文件个数n和磁带的长度L.接下来的1行中,有1个正整数,表示程序存放在磁带上的长度.
结果输出:将计算的最多可以存储的程序数输出到文件output.txt.
第4题
算法设计:对于给定的m、n和k,以及每种宝石的规定数量,计算出不同的宝石排列方案数.
数据输入:由文件input.txt给出输入数据.第1行有3个正整数m,n和k(0<m≤n<9).
第2行有k个数,第j个数表示第j种宝石在矩阵的每行和每列出现的最多次数.这k个数按照宝石的价值从小到大排列.设这k个数为则.
结果输出:将计算的宝石排列方案数输出到文件output.txt.
第5题
假定要把长为的n个程序放在磁带T1和T2上,并且希望按照使最大检索时间取最小值的方式存放,即如果存放在T1和T2上的程序集合分别是A和B,则希中所选择的A和B使得取最小值.
贪心算法:开始将A和B都初始化为空,然后一次考虑一个程序.如果则将当前正在考虑的那个程序分配给A,否则分配给B.证明无论是按还是按的次序来考虑程序的,这种方法都不能产生最优解.应当采用什么策略?写出一个完整的算法并证明其正确性.
第7题
数组元素位置。请编写一个函数将这个线性表原地逆置,即将数组的前n个原址内容置换为(en-1,en-2,…,e1,e0)。
第8题
问题描述:给定k个排好序的序列用2路合并算法将这k个序列合并成一个序列.假设采用的2路合并算法合并2个长度分别为m和n的序列需要m+n-1次比较.
试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少.
为了进行比较,还需要确定合并这个序列的最运合并顺序,使所需的总比较次数最多.
算法设计:对于给定的k个待合并序列,计算最多比较次数和最少比较次数合并方案.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数k,表示有k个待合并序列.接下来的1行有k个正整数,表示k个待合并序列的长度.
结果输出:将计算的最多比较次数和最少比较次数输出到文件output.txt.
第11题
算法设计:设计一个解n后问题的队列式分支限界法,计算在n×n个方格上放置彼此不受攻击的n个皇后的一个放置方案.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n.
结果输出:将计算的彼此不受攻击的n个皇后的一个放置方案输出到文件output.txt文件的第1行是n个皇后的放置方案.