prim时间复杂度,时间复杂度和空间复杂度的作用

牵着乌龟去散步 学知识 6 0

大家好,感谢邀请,今天来为大家分享一下prim时间复杂度的问题,以及和时间复杂度和空间复杂度的作用的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

本文目录

  1. prim算法的时间复杂度怎么样
  2. prim算法时间复杂度为什么为n^2
  3. 关于prim算法的时间复杂度
  4. 普里姆算法的时间复杂度是O(nV)。
  5. prim算法 复杂度
  6. Prim算法的时间复杂度与网中的边数有关吗
  7. prim的时间复杂度是多少

一、prim算法的时间复杂度怎么样

Prim算法的时间复杂度与网中的边数无关,适合于稠密图。

通过邻接矩阵图表示的简易实现中,找到所有最小权边共需O(V)的运行时间。使用简单的二叉堆与邻接表来表示的话,普里姆算法的运行时间则可缩减为O(ElogV),其中E为连通图的边数,V为顶点数。

如果使用较为复杂的斐波那契堆,则可将运行时间进一步缩短为O(E+VlogV),这在连通图足够密集时(当E满足Ω(VlogV)条件时),可较显著地提高运行速度。

1、输入:一个加权连通图,其中顶点 *** 为V,边 *** 为E;

2、初始化:Vnew={x},其中x为 *** V中的任一节点(起始点),Enew={},为空;

3、重复下列操作,直到Vnew= V:

在 *** E中选取权值最小的边<u, v>,其中u为 *** Vnew中的元素,而v不在Vnew *** 当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);

将v加入 *** Vnew中,将<u, v>边加入 *** Enew中;

4、输出:使用 *** Vnew和Enew来描述所得到的最小生成树。

二、prim算法时间复杂度为什么为n^2

1、 1).输入:一个加权连通图,其中顶点 *** 为V,边 *** 为E;

2、2).初始化:Vnew={x},其中x为 *** V中的任一节点(起始点),Enew={},为空;

3、3).重复下列操作,直到Vnew= V:

4、a.在 *** E中选取权值最小的边<u, v>,其中u为 *** Vnew中的元素,而v不在Vnew *** 当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);

5、b.将v加入 *** Vnew中,将<u, v>边加入 *** Enew中;

6、4).输出:使用 *** Vnew和Enew来描述所得到的最小生成树。

7、因为上述步骤a.的时间复杂度为O(n),而它的上级3).的时间复杂度也是O(n),所以,prim算法时间复杂度为n^2。

三、关于prim算法的时间复杂度

Prim算法的时间复杂度与网中的边数无关,适合于稠密图。

通过邻接矩阵图表示的简易实现中,找到所有最小权边共需O(V)的运行时间。使用简单的二叉堆与邻接表来表示的话,普里姆算法的运行时间则可缩减为O(ElogV),其中E为连通图的边数,V为顶点数。

如果使用较为复杂的斐波那契堆,则可将运行时间进一步缩短为O(E+VlogV),这在连通图足够密集时(当E满足Ω(VlogV)条件时),可较显著地提高运行速度。

1、输入:一个加权连通图,其中顶点 *** 为V,边 *** 为E;

2、初始化:Vnew={x},其中x为 *** V中的任一节点(起始点),Enew={},为空;

3、重复下列操作,直到Vnew= V:

在 *** E中选取权值最小的边<u, v>,其中u为 *** Vnew中的元素,而v不在Vnew *** 当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);

将v加入 *** Vnew中,将<u, v>边加入 *** Enew中;

4、输出:使用 *** Vnew和Enew来描述所得到的最小生成树。

四、普里姆算法的时间复杂度是O(nV)。

Prim算法的时间复杂度与网中的边数无关,适合于稠密图。

通过邻接矩阵图表示的简易实现中,找到所有最小权边共需O(V)的运行时间。使用简单的二叉堆与邻接表来表示的话,普里姆算法的运行时间则可缩减为O(ElogV),其中E为连通图的边数,V为顶点数。

如果使用较为复杂的斐波那契堆,则可将运行时间进一步缩短为O(E+VlogV),这在连通图足够密集时(当E满足Ω(VlogV)条件时),可较显著地提高运行速度。

prim时间复杂度,时间复杂度和空间复杂度的作用-第1张图片-

1、输入:一个加权连通图,其中顶点 *** 为V,边 *** 为E;

2、初始化:Vnew={x},其中x为 *** V中的任一节点(起始点),Enew={},为空;

3、重复下列操作,直到Vnew= V:

在 *** E中选取权值最小的边<u, v>,其中u为 *** Vnew中的元素,而v不在Vnew *** 当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);

将v加入 *** Vnew中,将<u, v>边加入 *** Enew中;

4、输出:使用 *** Vnew和Enew来描述所得到的最小生成树。

五、prim算法 复杂度

1、普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克发现;并在1957年由美国计算机科学家罗伯特·普里姆独立发现;1959年,艾兹格·迪科斯彻再次发现了该算法。因此,在某些场合,普里姆算法又被称为DJP算法、亚尔尼克算法或普里姆-亚尔尼克算法。

2、1).输入:一个加权连通图,其中顶点 *** 为V,边 *** 为E;

3、2).初始化:Vnew={x},其中x为 *** V中的任一节点(起始点),Enew={},为空;

4、3).重复下列操作,直到Vnew= V:

5、a.在 *** E中选取权值最小的边<u, v>,其中u为 *** Vnew中的元素,而v不在Vnew *** 当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);

6、b.将v加入 *** Vnew中,将<u, v>边加入 *** Enew中;

7、4).输出:使用 *** Vnew和Enew来描述所得到的最小生成树。

8、邻接矩阵:O(v2)邻接表:O(elog2v)

六、Prim算法的时间复杂度与网中的边数有关吗

Prim算法的时间复杂度与网中的边数无关,适合于稠密图。

通过邻接矩阵图表示的简易实现中,找到所有最小权边共需O(V)的运行时间。使用简单的二叉堆与邻接表来表示的话,普里姆算法的运行时间则可缩减为O(ElogV),其中E为连通图的边数,V为顶点数。

如果使用较为复杂的斐波那契堆,则可将运行时间进一步缩短为O(E+VlogV),这在连通图足够密集时(当E满足Ω(VlogV)条件时),可较显著地提高运行速度。

1、输入:一个加权连通图,其中顶点 *** 为V,边 *** 为E;

2、初始化:Vnew={x},其中x为 *** V中的任一节点(起始点),Enew={},为空;

3、重复下列操作,直到Vnew= V:

在 *** E中选取权值最小的边<u, v>,其中u为 *** Vnew中的元素,而v不在Vnew *** 当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);

将v加入 *** Vnew中,将<u, v>边加入 *** Enew中;

4、输出:使用 *** Vnew和Enew来描述所得到的最小生成树。

七、prim的时间复杂度是多少

Prim算法的时间复杂度与网中的边数无关,适合于稠密图。

通过邻接矩阵图表示的简易实现中,找到所有最小权边共需O(V)的运行时间。使用简单的二叉堆与邻接表来表示的话,普里姆算法的运行时间则可缩减为O(ElogV),其中E为连通图的边数,V为顶点数。

如果使用较为复杂的斐波那契堆,则可将运行时间进一步缩短为O(E+VlogV),这在连通图足够密集时(当E满足Ω(VlogV)条件时),可较显著地提高运行速度。

1、输入:一个加权连通图,其中顶点 *** 为V,边 *** 为E;

2、初始化:Vnew={x},其中x为 *** V中的任一节点(起始点),Enew={},为空;

3、重复下列操作,直到Vnew= V:

在 *** E中选取权值最小的边<u, v>,其中u为 *** Vnew中的元素,而v不在Vnew *** 当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);

将v加入 *** Vnew中,将<u, v>边加入 *** Enew中;

4、输出:使用 *** Vnew和Enew来描述所得到的最小生成树。

关于prim时间复杂度到此分享完毕,希望能帮助到您。

标签: 复杂度 时间 作用 空间 prim

抱歉,评论功能暂时关闭!