当前位置: 网站首页>小程序开发>网站优化

赵县网站制作要多少钱【域名企业邮箱服务器注册申请办理】赵县网络优化公司哪家好、赵县软件开发外包价格、赵县高端企业网站页面制作设计专业公司、赵县微信公众号小程序购物支付搭建制作公司

发表日期: 2021-04-17 09:19:52 浏览次数:146

赵县网站制作要多少钱【域名企业邮箱服务器注册申请办理】赵县网络优化公司哪家好、赵县软件开发外包价格、赵县高端企业网站页面制作设计专业公司、赵县微信公众号小程序购物支付搭建制作公司


赵县,隶属于河北省石家庄市,古称赵州,地处石家庄市区东南40公里,总面积为675平方公里,总人口61.3万(2017年),辖11个乡镇、281个行政村。县府驻赵州镇。汉为平棘县,晋为赵国,北魏置赵郡,曾为赵州治,隋改为赵州。1913年改为赵县。赵县历史悠久,文物众多,共有文物保护单位21处。

县境位于河北平原,光热充足,地下水丰富,利于井灌,又有石津渠灌溉之利,一年四季分明,春秋两季时间短,夏冬两季时间长。东部为沙质褐土,适于雪花梨生长。赵县农业发达,玉米、小麦是主要粮食产品。特产雪花梨俗称象牙梨,个大,皮薄、汁多、含糖分高,成熟后洁白如雪,故名,是河北省大宗出口的优质水果之一。

2018年12月27日,经河北省人民政府研究,同意灵寿县、赵县、阳原县县城为河北省园林县城。 [1]  2019年3月,被列为第一批革命文物保护利用片区分县名单。

(a)边ei 有着最高的标号。那么Q 上的所有边都在{e1,…,ei-1}中。请记住,T 和K 在ei 之前的所有边都是一样的,所以Q 中所有的边也是K 中的边。不过ei 也在K 中,这表示K 是一条环路。因此我们排除了ei 的标号比Q 中任何边的标号都高的可能。

(b)路径Q 上的某边f 的标号比ei 的标号高。假设f 连接节点w 和x。图9-25展示了树T 中的这种情况。如果将边f 从T 中删除,并加上边ei,就不会形成环路,因为路径Q 因f 被删除而中断了。得到的边的集合权要比T 低,因为f 有着比ei 更高的标号。我们声明得到的这些边仍然连通所有节点。要知道原因,请注意w 和x 仍然是连通的,有一条路径沿着Q 从w 到u,然后沿着边ei,然后再沿着路径Q 从v 到x。因为{wx }是唯一一条被删除的边,如果它的终点仍然是连通的,那么显然所有节点都是连通的。因此,边的新集合是生成树,而它的存在与T 是最小生成树的假设相矛盾。

现在就已经证明了ei 不可能在K 中而不在T 中。这样就排除了第二种情况。因为ei 不可能在T 和K 中,所以可以得出结论,K 其实就是最小生成树T。也就是说,克鲁斯卡尔算法总是能找到最小生成树。

图 9-25 路径Q(实线)在T 中,我们可以将边ei 添加到T 中并删除边f

9.5.3 克鲁斯卡尔算法的运行时间

假设对某一含n 个节点的图运行克鲁斯卡尔算法。就像9.4节那样,设m 是节点数与边数的较大者,但请记住,通常边数是较大者。假设该图是用邻接表表示的,这样就可以在O(m)的时间内找到所有的边。

首先,必须用标号为边排序,如果使用了诸如归并排序这样的高效排序算法,就要花上O(m logm)的时间。接着要考虑这些边,花上O(m logn)的时间进行所有的合并与寻找,就像在9.4节中讨论过的那样。因此看起来克鲁斯卡尔算法的总运行时间是O(m(logn+logm))。

不过,要注意到mn2,因为只存在n(n-1)/2个节点对。因此,logm≤2logn,这样一来m(logn+logm)≤3m logn。因为在大O 表达式中常数因子是可以省略掉的,所以可以得出结论:克鲁斯卡尔算法的运行时间是O(m logn)。

9.5.4 习题

1. 如果瓦西阿瓦被选为根节点,画出表示图9-22的树。

2. 使用克鲁斯卡尔算法为边和标号都如图9-21(见9.4节习题)所示的各分支找到最小生成树。

3. ** 证明,如果图G 是有n 个节点的无向连通图,而且T 是G 的生成树,则T 有n-1条边。提示:我们需要对n 进行归纳。难点在于证明T 一定有某个度为1的节点v,也就是说,T 刚好只有一条边含节点v。考虑如果对每个节点u 都至少有两条T 的边含有u 会发生什么。沿着边进出一系列的节点,最终会找到一条环路。因为假设T 是生成树,所以它不可能含有环路,这样一来就形成矛盾了。

4. * 一旦我们选定了n-1条边,就不需要考虑将更多的边纳入该生成树了。描述克鲁斯卡尔算法的一个变种,它不会为所有边排序,但会将它们放入优先级队列中,将边标号的相反数作为其优先级(也就是最短的边会首先被deleteMax 选中)。证明,如果生成树可以在前m/logm 条边中找到,那么这一版本的克鲁斯卡尔算法就只需要花O(m)的时间。

5. * 假设为图G 找到了最小生成树T,然后向G 添加权为w 的边{uv }。在什么情况下T 仍是新图的最小生成树?

6. ** 无向图G 的欧拉回路是起止点为同一节点而且刚好含有图G 中每条边一次的路径。

(a) 证明,当且仅当每个节点都为偶数度时,无向连通图含有欧拉回路。

(b) 设G 是有m 条边而且每个节点都为偶数度的无向图。给出运行时间是O(m)的为图G 构建欧拉回路的算法。

9.6 深度优先搜索

我们现在要描述一种对有向图而言很实用的图探索方法。在5.4节中我们讨论过树的前序遍历和后序遍历,其中从根节点开始,递归地探索了访问过的每个节点的子节点。我们几乎可以将同样的思路应用到任意有向图上。①从任意节点出发,可以递归地探索其后继。

不过,必须小心图中存在环路的情况。如果存在环路,我们可能会绕着环路永远地递归调用探索函数。例如,考虑图9-26中的图。从节点a 开始,我们可能决定接下来探索节点b。从b 出发可能会先探索c,然后从c 出发可能要先探索b。这样就会导致无限递归,反复地探索b 和c。其实,我们选择按照什么次序探索b 和c 的后继是不重要的。要么会困在其他的环路中,要么最终会无限地从b 探索c 并从c 探索b

图 9-26 有向图的示例

这一问题有个简单的解决方案:在访问节点的过程中为其做上标记,并永不再次访问标记过的节点。这样一来,我们从起始节点起可以到达的任何节点都会被探索到,而之前已经访问的节点不会被再次访问。我们将看到这种探索所花的时间是与被探索的弧的数量成比例的。

这种搜索算法叫作深度优先搜索,因为我们会尽可能快地行进到离初始节点尽可能远(尽可能“深”)的节点。这可以通过一种简单的数据结构实现。这里要再次假设使用NODE类型为节点命名,而且该类型就是int类型。我们用邻接表表示弧。因为需要为每个节点添加一个“标记”,其值是从VISITEDUNVISITED中二选一,所以要创建一个结构体数组来表示该图。这些结构体要同时包括这里所说的标记以及邻接表的表头。

enum MARKTYPE {VISITED, UNVISITED};typedef struct {
    enum MARKTYPE mark;
    LIST successors;} GRAPH[MAX];复制代码

其中LIST为邻接表,是按照以下习惯方式定义的

typedef struct CELL *LIST;struct CELL {
    NODE nodeName;
    LIST next;};复制代码

一开始要将所有的节点标记为UNVISITED。图9-27所示的递归函数dfs(u,G)会处理某幅在外部定义的GRAPH类型的图G 中的节点u

在第(1)行我们将u 标记为VISITED,这样就不用再次对它调用dfs了。第(2)行会初始化指针p,它指向节点u 的邻接表的第一个单元。第(3)行至第(7)行的循环会带p 沿着邻接表向下行进,依次考虑u 的各后继v

     void dfs(NODE u, GRAPH G)
     {
         LIST p; /* 沿着u对应的邻接表下行 */
         NODE v; /* 由p指向的单元中存放的节点 */(1)      G[u].mark = VISITED;(2)      p = G[u].successors;(3)      while (p != NULL) {(4)          v = p->nodeName;(5)          if (G[v].mark == UNVISITED)(6)              dfs(v, G);(7)          p = p->next;
         }
     }复制代码

图 9-27 递归的深度优先搜索函数

第(4)行会将v 置为节点u“当前”的后继。在第(5)行,我们会测试v 之前是否已经被访问过。如果是,就跳过第(6)行的递归调用并在第(7)行中将p 移动到邻接表的下一个单元。不过,如果v 从未被访问过,就要在第(6)行从节点v 开始进行深度优先搜索。最后,完成对dfs(v,G)的调用。然后执行第(7)行,让p 沿着u 的邻接表向下移动并进行循环。

示例 9.18

假设G是图9-26所示的图,而且为了简化问题,假设各邻接表中的节点都是按照字母表顺序排列的。一开始,所有节点都会被标记上UNVISITED。调用dfs(a)7节点a 在第(1)行会被标记为VISITED,而且我们在第(2)行要初始化指针p,它指向a 的邻接表的第一个单元。在第(4)行v 被置为b,因为b 是第一个单元中的节点。由于b 当前处于未被访问的状态,所以第(5)行的测试会成功,并且要在第(6)行调用dfs(b)

7在接下来的内容中,我们将省略dfs的第二个参数,因为它永远都是图G

现在,要以b 为参数开始一次对dfs的新调用,而u=a 的旧调用处于休眠状态而并未终止。因为c 是b 的邻接表中的第一个节点,所以在第(4)行c 成了v 的值。节点c 是未访问过的,所以我们在第(5)行会成功并在第(6)行调用dfs(c)



赵县网站制作要多少钱域名企业邮箱服务器注册申请办理赵县网络优化公司哪家好、赵县软件开发外包价格、赵县高端企业网站页面制作设计专业公司、赵县微信公众号小程序购物支付搭建制作公司

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878