摘要:
题目: 实现单源最短路经的迪杰斯特拉算法(Dijkstra),以下图为例,求出1到其余地点的最短路径。 基本思想: 以起始点为中心向外层层扩展,直到扩展到终点为止。 Code: 输出结果 0 10 15 25 55 40 48 为到各点的最短距离 阅读全文
摘要:
1、实例计算(写出计算过程): 1)对维数为序列<5, 10, 3, 12, 5, 50, 6>的各矩阵,找出其矩阵链乘积的一个最优加全部括号。 这是一个矩阵连乘问题,基本知识可以参考: 就本题分析如下: 用递推公式 m[i][j]表示为: i=j时,m[i][j]填0;i>j时,m[i][j]为空 阅读全文
摘要:
1、磁带最优存储问题 Input: 571 87246 4529 26573 12035 87 Output: 85.6193 Code: 2、磁盘文件最有存储问题 Input: 5 33 55 22 11 9 Output: 0.547396 Code: 参考自:https://www.jians 阅读全文
摘要:
1、 $\sqrt {\rm{n}} $段合并排序算法: 将数组a[0,n-1]划分为$\sqrt {\rm{n}} $个子数组,每个子数组有O($\sqrt {\rm{n}} $)个元素。然后递归地对分割后的子数组进行排序,最后将所得到的$\left\lfloor {\sqrt {\rm{n}} 阅读全文
摘要:
1、对于长度相同的2个字符串A和B,其距离定义为相应位置字符距离之和。2个非空格字符的距离是它们的ASCII码之差的绝对值。空格与空格的距离为0,空格与其他字符的距离为一定值k。 在一般情况下,字符串A和B的长度不一定相同。字符串A的扩展是在A中插入若干空格字符所产生的字符串。在字符串A和B的所有长 阅读全文
摘要:
题目: 给定k个排好序的序列s1,s2,...,sk,用2路合并算法将这k个序列合并成一个序列。假设所采用的2路合并算法合并2个长度为m和n的序列需要m+n-1次比较。设计一个算法确定2路合并次序,使所需的总比较次数最少。 输入: 第一行有 1 个正整数k,表示有k个待合并序列。接下来的1 行中,有 阅读全文
摘要:
题目: 给定数组A[0..n-1],试设计一个算法,在最坏情况下用n+logn次比较找出A[0..n-1]中元素的最大值和次大值。 输入:序列长度、数组A 输出:maxnum、cmaxnum Input: 7 1 2 3 4 5 6 7 Output: 7 6 思想: 用分治法将数组中的数分为两个序 阅读全文
摘要:
1、为最近对问题的一维版本设计一个直接基于分治技术的算法,并确定它的时间复杂度。假设输入的点是以升序保存在数组A中。(最近点对问题定义:已知上m个点的集合,找出对接近的一对点。) 思路:通过分治和递归将问题自顶向下分为层层的子问题,然后每层中子问题自底向上min向上比较。 输入:保存升序点序列的数组 阅读全文