摘要: 1. 问题 给定n个不同的数构成的数组T[1..n],使用二分归并排序对数组进行排序,其中n=2^k 2. 解析 二分归并排序主要有两个大步骤 1.将数组分为两部分,并分别进行二分归并排序 2.将排序好的两部分进行归并。 整个过程是一个递归的过程 3. 设计 MergeSort(T,left,rig 阅读全文
posted @ 2020-03-18 12:25 饭吃了 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 写出两种检索算法:在一个排好序的数组T[1..n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。 2. 解析 主要实现两种算法,顺序查找和二分查找。顺序查找就是在数组中一个一个的查找,并判断是否符合要求。二分查找 阅读全文
posted @ 2020-03-11 19:45 饭吃了 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 给定一定无负值圈的图G,顶点集为V,使用Dijkstra算法求出G中顶点n到顶点m的最短路径,使用Floyd算法求出多源的最短路径,具体的图如下 2. 解析 Dijkstra算法是单源的最短路径算法,即给定一个起始点m,求出m到所有其他顶点的最短路径。主要思想是维护一个数组dist与S, 阅读全文
posted @ 2020-03-04 14:46 饭吃了 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 给定一个无向有权图G,分别使用PRIM算法和Kruakal算法来生成T的最小生成树 2. 解析 最小生成树是指顶点集与图相同,但是所有的边权值和最小的树。设G的顶点集为V,边集为E,G的最小生成树的顶点集为Vnew,边集为Enew。 PRIM算法的主要思想是以图中的点为基础,先随机选择一 阅读全文
posted @ 2020-02-27 19:18 饭吃了 阅读(180) 评论(0) 推荐(0) 编辑