博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
连通性问题--Algorithms IN C读书笔记
阅读量:5909 次
发布时间:2019-06-19

本文共 1143 字,大约阅读时间需要 3 分钟。

     近期在看《Algorithms IN C》这本书。刚開始看,读的是英文版的。感觉作者的叙述有点不太easy理解。就找了一本中文版的来看,发现还是看英文版的比較好。先看了第一章的大部分,后面的总结还没有看,我的感受是。一个小的问题仅仅须要找到一个正确的算法就能够了。根本不许要去考虑算法的效率和性能,仅仅有在解决一些大型的实际问题时,算法的优劣才干体现出来。另外,就是添加机器的性能远不如改善算法的性能贡献大。

     第一章举了一个连通性的样例,作者一步一步的引导我们来改进算法,使得这个算法终于能够真正的用在实际问题中。这个问题的描写叙述及四个解决算法,例如以下:

问题描写叙述   输入两个整数,代表两个节点。假设这两个整数没有建立连接(这包含直接连接和通过其它节点连接),那么我们就建立这两个节点之间的连接。否则,继续输入下一个节点
四个逐步改进的算法例如以下:
//算法一#include 
#define N 10int main(void){ int id[N]; int t,i,p,q; //一定要初始化啊 for(i=0;i

     这四个算法所使用的数据结构都是数组。算法一是把连接(包含直接连接和间接连接)在一起的整数所相应的数组元素都赋值为同样的值。

//算法二#include 
#define N 10int main(void){ int id[N]; int i,j,p,q; for(i=0;i

     算法二採用的数据结构仍然是数组,可是逻辑上确实树的结构。我们首先依据输入的两个整数,分别找到其所在的树的根节点,然后检測两个节点所在的树的根节点是否同样。假设同样。就说明是同一棵树,否则就把这两个根节点连接起来。

//算法三#include 
#define N 10int main(void){ int id[N],sz[N]; int p,q,i,j; for(i=0;i

     算法三是在算法二的基础之上改进而来的。可是它加入了一个数据结构,记录以每一个节点为根的树中的元素的个数。

通过这个数据结构,每次都把小树连接到大树上,防止树的深度过深。

//算法四#include 
#define N 10int main(void){ int id[N]; int sz[N]; int p,q,i,j; //初始化 for(i=0;i
     算法四就是在算法三的基础之上又做了进一步的改进,将树的深度进一步的缩小。

     关于第二章算法分析的部分,准备留到以后再看,如今看了没什么深得体会。下一部分。准备開始看数据结构。

转载地址:http://hnvpx.baihongyu.com/

你可能感兴趣的文章
目前机器学习和深度学习能做些什么?
查看>>
基于html5 canvas和js实现的水果忍者网页版
查看>>
深入理解javascript描述元素内容的5个属性
查看>>
Android 知识梳理
查看>>
【反射】使用反射来获取注解原数据信息-类信息-方法信息等
查看>>
【原创】宿主机远程登录虚拟机(windows server 2003系统)
查看>>
前端开发,关于图片的那些事
查看>>
如何合理的规划jvm性能调优
查看>>
从地址字符串获取省市区信息
查看>>
莫比乌斯反演初步与实际应用
查看>>
技术分享:阿里巴巴Dubbo实现的源码分析
查看>>
Redis3.2源码分析-跳跃表zskiplist
查看>>
开发人员可以提高效率的chrome插件推荐
查看>>
LeetCode 319 Bulb Switcher(灯泡切换)(从规律中发现算法……)
查看>>
JDBC的Statement对象
查看>>
内穆尔(Nemours)儿童健康系统选择HID Global解决方案
查看>>
9Python全站之路系列之MySQL SL注入
查看>>
SpringMVC懒加载导致的问题一则
查看>>
Tips of ACWS Framework
查看>>
biji001
查看>>