这谈的数据结构和算法2好基友[数据结构和算法]

在本文中,小乌龟的数据结构和算法的教学视频学习笔记


第一章:谈谈数据结构和算法这2个好基友

 

一、聊聊数据结构


1、为什么学数据结构?编程能力有质的飞越,不再停留在调用现成的API,做一个上档次的程序猿。


2、什么是数据结构?数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。

思考:好吧,简单来说程序设计 =数据结构 + 算法,数据结构就是关系,就是数据元素之间存在的一种或多种特定关系的集合。


3、数据结构分为逻辑结构和物理结构,前者指数据对象中数据元素之间的相互关系,否则指逻辑结构在计算机中的存储形式

思考:数据结构  =逻辑结构 +物理结构


4、逻辑结构有四种例如以下所看到的:

  • 集合结构:除了同属一个集合外,没有其它不论什么关系

  • 线性结构:数据元素之间是一对一的关系

  • 树形结构:数据元素之间是一对多的关系

 

  • 图形结构:数据元素之间是多对多的关系

思考:假设从人的交合方面说明4大逻辑结构,集合 =  2个陌生人,线性结构 =  1对夫妻,树形结构一男多女3p4p5p,图形结构 = 聚众淫乱


5、物理结构是指怎样将数据元素存储到计算机的存储器中,此处的存储器主要针对内存而言,像硬盘、光盘能外部存储器的数据组织通经常使用文件结构来描写叙述。

思考:假设说逻辑结构是关系,那么物理结构就是关系在内存的存储关系


6、数据元素的存储结构形式有两种:

  • 顺序存储:指数据元素存放在地址联系的存储单元里。其数据间逻辑关系和物理关系是一致的,比方数组

  • 链式存储:面对时常变化的元素。比顺序存储灵活多了。就是把数据元素存放在随意的存储单元里。这组存储单元能够是连续的。也能够是不连续的。所以说链式存储结构的数据元素存储关系并不能反应其逻辑关系,因此须要用一个指针存放数据元素的地址,这样子通过地址就能够找到关联数据元素的位置。比方:银行叫号机

思考:存储结构顺序存储 +链式存储。前者就是排排坐,后者多了指针指向元素地址,就能够找到下一个元素在哪里。就是叫号系统

 

二、聊聊算法

1、不明确数据结构和算法的关系?,见下图



2、算法是什么?算法宅计算机中表现为指令的有限序列,而且每一条指令表示一个或者多个操作。一个问题能够由多个算法解决,一个算法也不可能具有通解全部的问题。

思考1:算法就是你泡妞的技巧和方式。对不同的妞儿要有不同的喜好,可以有多个追求的方式,一种追求方式不可能对通吃全部的妞儿,不同的追求方式就有区别。有的追的快,有的追得慢。学会针对不同的妞儿採取适合的泡妞技巧才可以高速的泡到妞

思考2:虽然算法不唯一。可是我们要学习掌握好一些号的算法,对我们解决这个问题非常有帮助。


3、算法的5个基本特征:输入、输出、有穷性、确定性和可行性

  • 输入:有0个或者多个输入
  • 输出:有1个或者多个输出(假设没有反馈要他干嘛?)
  • 有穷性:有限的步骤后。有限的时间
  • 确定性:没有二义性(爱or不爱)
  • 可行性:每一步能够实现的

4、算法的要求:正确性、可读性、健壮性、时间效率高、存储量低


5、算法的正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性,能正确反映问题的需求、可以得到问题的正确答案。

大体分为下面四个层次:

  • 算法程序没有语法错误
  • 算法程序对于合法输入可以产生满足要求的输出
  • 算法程序对于非法输入可以产生满足规格的说明
  • 算法程序对于有益刁难的測试输入都有要求的输出结果

思考:对于非法输入和有益刁难的測试都有输出满足规格结果非常重要


6、算法的可读性:算法设计的还有一个目的就是为了便于阅读、理解和交流。我们写代码的目的除了让计算机运行,还有就是为了便于他人阅读和改动

思考:代码的可读性要强


7、算法的健壮性:当输入数据不合法时。算法也可以做出相关的处理。而不是产生异常、崩溃或者莫名其妙的结果。

思考:健壮性,简而言之就是不会由于别人乱输入就把你的程序搞崩溃了


8、算法高效率的时间和内存容量较低:在非常高的效率运行,较少使用的变量。使用较少的内存资源

版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值