项湫

导航

2021年4月26日 #

投资问题

摘要: 1. 问题 2. 解析 3. 设计 4. 分析 5. 源码 #include <iostream> using namespace std; #define MAX 201 void MaxProfit(int f[][MAX], int number, int money) { int F[MAX 阅读全文

posted @ 2021-04-26 15:23 项湫 阅读(31) 评论(0) 推荐(0) 编辑

2021年4月19日 #

选第k小元素:特定分治策略

摘要: 1. 问题 在一个数组中找到第k小的元素并输出 2. 解析 3. 设计 int select(int a[], int low, int high, int k) { int middle; middle = split(a, low, high); if (middle == k) return 阅读全文

posted @ 2021-04-19 15:27 项湫 阅读(81) 评论(0) 推荐(0) 编辑

2021年4月12日 #

最近对问题

摘要: 1. 问题 在数组P中存储平面上的n>=2个点,并且按照这些点的x轴坐标升序排列,数组Q中存储与P相同的点,只是它按照这些点的y 轴坐标升序排序,得出最近点之间的欧几里得距离。 2. 解析 1)蛮力算法:当2≤n≤3时,问题就可以通过蛮力算法解决。 (2)分治算法:当n>3时,可以利用点集在x轴方向 阅读全文

posted @ 2021-04-12 15:32 项湫 阅读(141) 评论(0) 推荐(0) 编辑

2021年3月29日 #

二分排序算法

摘要: 1. 问题 对n个不同的数构成的数组A[1..n]进行排序,其中n=2^k 2. 解析 归并排序是一种基于“归并”思想的排序方法,二分归并的原理是,将序列两两分组,将序列归并为n/2个组,组内单独排序,然后将这些组再两两归并,生成n/4个组,依次类推。实现排序 3. 设计 void merge(in 阅读全文

posted @ 2021-03-29 16:12 项湫 阅读(644) 评论(0) 推荐(0) 编辑

2021年3月17日 #

使用Dijkstra算法求由顶点a到顶点h的最短路径

摘要: 1. 问题 对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。 2. 解析 Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合:T,初始时,原点 s 的路径权重被赋为 0 (dis[s] = 0)。若对于顶 阅读全文

posted @ 2021-03-17 22:25 项湫 阅读(626) 评论(0) 推荐(0) 编辑

Floyd算法求解下图各个顶点的最短距离

摘要: 1. 问题 用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)。 2. 解析 第一、先找出最短的距离第二、然后在考虑如何找出对应的行进路线。 如何找出最短路径呢,这里还是用到动态规划的知识,对于任何一个城市而言,i到j的最短距离不外乎存在经 阅读全文

posted @ 2021-03-17 20:10 项湫 阅读(91) 评论(0) 推荐(0) 编辑

2021年3月8日 #

Kruskal算法生成最小生成树

摘要: 1. 问题 最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边 2. 解析 在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 阅读全文

posted @ 2021-03-08 23:04 项湫 阅读(179) 评论(0) 推荐(0) 编辑

Prim算法生成最小生成树

摘要: 1. 问题 最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边 2. 解析 在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 阅读全文

posted @ 2021-03-08 23:02 项湫 阅读(433) 评论(0) 推荐(0) 编辑