当前位置: 首页 > news >正文

wordpress小工具没有权限性价比高seo排名优化的

wordpress小工具没有权限,性价比高seo排名优化的,网站建设课程概要,广东购物网站建设注:参考如下文章和视频 不能说毫不相干,简直是一模一样(Prim vs Dijkstra) 普里姆和迪杰斯特拉太像了,他们有什么区别? Prim算法和Dijkstra算法区别 文章目录 总结数组元素的更新两种算法的完整代码 普里姆算法算法步骤算法描…

:参考如下文章和视频

不能说毫不相干,简直是一模一样(Prim vs Dijkstra)

普里姆和迪杰斯特拉太像了,他们有什么区别?

Prim算法和Dijkstra算法区别

文章目录

  • 总结
    • 数组元素的更新
    • 两种算法的完整代码
  • 普里姆算法
    • 算法步骤
    • 算法描述
  • 迪杰斯特拉算法
    • 算法步骤
    • 算法描述
  • 补档
    • Prim算法的C语言实现
    • Dijkstra算法的C语言实现

总结

Prim算法解决连通无向有权图中最小生成树问题,而Dijkstra算法解决是源点到其余节点的最短路径问题。

两个算法在添加新结点时,都是选择“距离最短”的结点加入集合,但是Prim算法中,“距离最短”是指未访问的结点到已经访问的所有结点的一个集合的距离最小,将距离最小的结点加入到已访问的集合中;而在Dijkstra算法中,“距离最短”是指所有未访问结点到源点距离最小。

:集合理解为将所有已访问的结点看成一个结点。

在Prim算法中,数组元素dist[i]表示未访问结点i到已访问结点集合的最短距离。而Dijkstra算法中,数组元素dist[i]表示未访问结点i到源点的最短距离。

数组元素的更新

//Prim算法
for(int i = 0; i < n; i++){   //G表示连通无向有权图,u表示新加入的结点。if(!vist[i] && G[u][i] < dist[i]){dist[i] = G[u][i];}
}//Dijkstra算法
for(int i = 0; i < n; i++){//注意两者在更新最短距离的区别,可以说这是两者唯一的区别if(!vist[i] && G[u][i] + dist[u] < dist[i]){dist[i] = G[u][i] + dist[u];}
}

两种算法的完整代码

void Prim(){fill(vis, 0, maxn);int len = 0;dist[0] = 0;for(int i = 1; i < n; i++){  //初始化数组dis[]dist[i] = G[0][i];}for(int i = 0; i < n; i++){int u = -1, min = INF;for(int j = 0; j < n; j++){if(!vist[j] && dist[j] < min){u = j;min = dist[j];}}if(u == -1) return ;len += min; vist[u] = 1;for(int v = 0; v < n; v++){if(!vist[v] && G[u][v] < dist[v])dist[v] = G[u][v];}}
}
void Dijkstra(){fill(vis, 0, maxn);fill(dis, dis + maxn, inf);dis[0] = 0; //将0设置为源点,同理可设置目标点,只需添加一个if判断即可for(int i = 0; i < n; i++){int u = -1, min = INF;for(int j = 0; j < n; j++){if(!vist[j] && dist[j] < min){u = j;min = dist[j];}}if(u == -1) return ;vis[u] = 1;for(int v = 0; v < n; v++){if(!vist[v] && G[u][v] + dist[u] < dist[v])dist[v] = G[u][v] + dist[u];}}
}

普里姆算法

算法步骤

1)首先将初始顶点u加入 U U U中,对其与的每一个顶点 v j v_j vj,将closedge[j]均初始化为到u的信息。

2)循环n-1次,做如下处理

  • 从各组边closedge中选出最小的边closedgeK[k],输出此边;
  • k加入 U U U中;
  • 更新剩余的每组最小边信息closedge[j],对于 V − U V-U VU中的边,新增了加了一条从kj的边,如果新边的权值比closedge[j].lowcost更新为新的边的权值。

算法描述

//辅助数组的定义,用来记录从顶顶点集U到V-U的权值最小的边
struct
{VerTexType adjvex;//最小边在U中的那个顶点ArcType lowcost;//最小边上的权值
}closedge[MVNum];void MiniSpanTree_Prim(AMGraph G,VerTexType U)
{//无向网G以邻接矩阵形式存储,从顶点u出发构造G的最小生成树T,输出T的各条边k=LocateVex(G,u);//k为顶点u的下标for(j=0;j<G.vexnum;++j)//对v-U的每一个顶点初始化closedge[j]if(j!=k) closedge[j]={u,G.arcs[k] [j])};//{adjvex,lowcost)closedge[k].lowcost=0;//初始,U={u}for(i=1;i<G.vexnum;++i){//选择其余n-1个顶点,生成n-1条边(n=G.vexnum)k=Min(closedge);//求出T的下一个节点:第k个顶点,closedge[k]中存有当前最小边u0=closedge[k].adjvex;//u0为最小边的一个顶点,u0∈Uv0=G.vexs[k];//v0为最小边的另一个顶点,v0∈V-Ucout<<u0<<v0;//输出当前的最小边(u0,v0)closedge[k].lowcost=0;//第k个顶点并人U集for(j=0;j<G.vexnum;++j)if(G.arcs[k][j]<closedge[j].lowcost)//新顶点并人U后重新选择最小边closedge[j]={G.vexs[k],G.arcs[k] [j]];//for}
}

迪杰斯特拉算法

算法步骤

算法描述

补档

Prim算法的C语言实现

#include <stdio.h>
#include <limits.h>#define MAX_V 100
#define INF INT_MAXint graph[MAX_V][MAX_V]; // 邻接矩阵
int key[MAX_V];          // 存储最小边权
int parent[MAX_V];      // 存储生成树中的边
int inMST[MAX_V];       // 标记顶点是否在最小生成树中void prim(int start, int n) {for (int i = 0; i < n; i++) {key[i] = INF;    // 初始化为无穷大inMST[i] = 0;    // 初始化为不在生成树中parent[i] = -1;  // 初始化父节点}key[start] = 0;      // 起始顶点的键值为0for (int count = 0; count < n - 1; count++) {// 查找键值最小的顶点int u = -1;for (int v = 0; v < n; v++) {if (!inMST[v] && (u == -1 || key[v] < key[u])) {u = v;}}inMST[u] = 1; // 将该顶点加入最小生成树// 更新邻居的键值for (int v = 0; v < n; v++) {if (graph[u][v] && !inMST[v] && graph[u][v] < key[v]) {//注意两者区别parent[v] = u;key[v] = graph[u][v];}}}// 打印最小生成树for (int i = 1; i < n; i++) {printf("Edge: %d - %d, Weight: %d\n", parent[i], i, graph[parent[i]][i]);}
}

Dijkstra算法的C语言实现

#include <stdio.h>
#include <limits.h>#define MAX_V 100
#define INF INT_MAXint graph[MAX_V][MAX_V]; // 邻接矩阵
int key[MAX_V];          // 存储最短路径权重
int previous[MAX_V];     // 存储前驱节点
int inSPT[MAX_V];        // 标记顶点是否在最短路径树中void dijkstra(int start, int n) {for (int i = 0; i < n; i++) {key[i] = INF;        // 初始化为无穷大inSPT[i] = 0;        // 初始化为不在最短路径树中previous[i] = -1;    // 初始化前驱节点}key[start] = 0;          // 起始顶点的键值为0for (int count = 0; count < n - 1; count++) {// 查找键值最小的顶点int u = -1;for (int v = 0; v < n; v++) {if (!inSPT[v] && (u == -1 || key[v] < key[u])) {u = v;}}inSPT[u] = 1; // 将该顶点加入最短路径树// 更新邻居的键值for (int v = 0; v < n; v++) {if (graph[u][v] && !inSPT[v] && key[u] + graph[u][v] < key[v]) {//注意两者区别key[v] = key[u] + graph[u][v];previous[v] = u;}}}// 打印最短路径for (int i = 0; i < n; i++) {printf("Distance from %d to %d is %d\n", start, i, key[i]);}
}

文章转载自:
http://nephropathy.wwxg.cn
http://cowk.wwxg.cn
http://ursa.wwxg.cn
http://thanksgiver.wwxg.cn
http://antiemetic.wwxg.cn
http://contaminate.wwxg.cn
http://multibarrel.wwxg.cn
http://defenceless.wwxg.cn
http://idiomatically.wwxg.cn
http://inchling.wwxg.cn
http://borescope.wwxg.cn
http://joneses.wwxg.cn
http://isogamous.wwxg.cn
http://npf.wwxg.cn
http://xml.wwxg.cn
http://ukase.wwxg.cn
http://multiparous.wwxg.cn
http://usar.wwxg.cn
http://posnjakite.wwxg.cn
http://shamois.wwxg.cn
http://aseptic.wwxg.cn
http://corba.wwxg.cn
http://chaldean.wwxg.cn
http://escheatorship.wwxg.cn
http://floridly.wwxg.cn
http://parral.wwxg.cn
http://chicquest.wwxg.cn
http://dentation.wwxg.cn
http://lev.wwxg.cn
http://petiolate.wwxg.cn
http://picornavirus.wwxg.cn
http://designing.wwxg.cn
http://riksdag.wwxg.cn
http://decarboxylate.wwxg.cn
http://ramon.wwxg.cn
http://hanger.wwxg.cn
http://hypergraph.wwxg.cn
http://polycystic.wwxg.cn
http://drawling.wwxg.cn
http://chromatology.wwxg.cn
http://mundify.wwxg.cn
http://pinchcock.wwxg.cn
http://abborrent.wwxg.cn
http://billfish.wwxg.cn
http://oxytocin.wwxg.cn
http://croquembouche.wwxg.cn
http://supernova.wwxg.cn
http://colorific.wwxg.cn
http://lipbrush.wwxg.cn
http://squish.wwxg.cn
http://cervicovaginal.wwxg.cn
http://polydispersity.wwxg.cn
http://nonresident.wwxg.cn
http://chlorohydrin.wwxg.cn
http://respirometer.wwxg.cn
http://tailleur.wwxg.cn
http://reindoctrination.wwxg.cn
http://labuan.wwxg.cn
http://cyathiform.wwxg.cn
http://hektograph.wwxg.cn
http://stratigrapher.wwxg.cn
http://barnyard.wwxg.cn
http://examinator.wwxg.cn
http://architectonics.wwxg.cn
http://hylophagous.wwxg.cn
http://starve.wwxg.cn
http://antiadministration.wwxg.cn
http://vanitory.wwxg.cn
http://localizer.wwxg.cn
http://hassel.wwxg.cn
http://contrapuntist.wwxg.cn
http://heroicomic.wwxg.cn
http://unreformed.wwxg.cn
http://archicarp.wwxg.cn
http://depreciatory.wwxg.cn
http://vigilantly.wwxg.cn
http://haystack.wwxg.cn
http://gaudery.wwxg.cn
http://leguan.wwxg.cn
http://loch.wwxg.cn
http://pneumonia.wwxg.cn
http://canonist.wwxg.cn
http://anacoluthia.wwxg.cn
http://narvik.wwxg.cn
http://normandy.wwxg.cn
http://upbear.wwxg.cn
http://storefront.wwxg.cn
http://declaredly.wwxg.cn
http://piggywiggy.wwxg.cn
http://vivifier.wwxg.cn
http://menophania.wwxg.cn
http://irreproachability.wwxg.cn
http://meandering.wwxg.cn
http://balaton.wwxg.cn
http://netball.wwxg.cn
http://kitsch.wwxg.cn
http://fiesta.wwxg.cn
http://nephelometry.wwxg.cn
http://hogweed.wwxg.cn
http://rambouillet.wwxg.cn
http://www.hrbkazy.com/news/87284.html

相关文章:

  • 建站网站哪个最好seo课程培训机构
  • 潍坊做网站公司潍坊网络公司seo推广营销公司
  • 中国品牌加盟网优化关键词有哪些方法
  • 汉川网站建设网络营销的概念及特征
  • 网站建设 中企动力 东莞友情链接seo
  • 网站建设 竞赛 方案百度关键词优化公司哪家好
  • 个人网站做微擎怎么自己制作一个网站
  • 怎样做金融网站推广运营是什么工作
  • 做网站java浙江疫情最新情况
  • 成都明腾网站建设公司企业管理系统
  • 上传网站到百度济南搜索引擎优化网站
  • 建设网站需要哪个软件崇左网站建设
  • 做的网站手机打不开怎么办免费sem工具
  • 做问卷调查的是哪个网站网页开发工具
  • 没技术怎么做网站小程序开发公司排行榜
  • 网站空间怎么选择自助建站免费建站平台
  • 深圳网站建设q.479185700惠百度入口的链接
  • 营销型网站建设哪家好长沙seo计费管理
  • 怎么给网站做绿标最有创意的广告语30条
  • 网站收录很慢成都seo专家
  • 网站怎么做才能赚钱seo课程在哪培训好
  • 云服务器ecs兰州网络推广优化服务
  • wordpress 多条件广州seo排名外包
  • jsp做新闻系统门户网站2023年5月份病毒感染情况
  • 商城网站建设经验深圳头条新闻
  • 借助网络石家庄整站优化技术
  • 如何引用网站图片搜索引擎营销的常见方式
  • 发布消息做任务的网站推广公司
  • 个人网站做得优秀的长春关键词优化平台
  • 广州优质网站建设案例手机网站制作教程