Java数据结构与算法-算法

前言

算法

1 数据结构与算法关系

  • 谈数据结构,很多时候都会讲到算法,以及它们之间的关系,有一些经典书籍的名字也叫做“数据结构与算法分析”。那么二者之间有啥关系呢?为啥老是组团出现呢?
  • 假设说,有一天你打算去现场看德云社相声,到了现场一看,结果发现怎么只有一个人在讲相声,原来是另外一个搭档生病没有来,这就有点尴尬了,这还有什么看头呢?
  • 事实上,数据结构和算法也是类似的关系。只谈数据结构,当然也可以,但是看完后没有什么感觉,但是如果再把对应的算法也讲一讲,你就会发现,原来计算机中的这些前辈是真的厉害,他们解决了很多看似很难解决或者没法解决的问题,变得非常美妙和神奇。

2 算法间的比较

  • 这里假设小伙伴们已经有了一定的编程经验,现在如果让你写1+2+3+…+100的程序,你该怎么写呢?也许你会首先想到下面这个代码
      在这里插入图片描述
  • 这是最简单的程序之一了,它就是一种算法,但是问题在于,这样写是不是真的很好呢?是不是最高效呢?
  • 高斯的童年故事相信大家都很熟悉了,不妨再感受下,天才当年是如何展现天分和才华的
      据说18世纪生于德国小村庄的高斯,上学一天,课堂上老师出了一个题目,要求计算1+2+…+100的结果,谁先算出来谁先放学回家。高斯很快就算出了答案,是5050.高斯的思考方式是头尾相加都是101,共有50组,所以是101*50=5050.
  • 用程序来实现如下
      在这里插入图片描述
  • 这种算法不仅仅可用于从1加到100,就是到1千,1万。。。都是瞬间的事情。但是如果使用第一次的for循环,那将循环100,1000,1000.。。次

3 算法的基本概念

  • 算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每条指令表示一个或多个操作。
  • 简单来讲,算法就是描述解决问题的方法。一般来讲,对于给定的问题,是可以有多种算法来解决的。现实世界中问题千奇百怪,算法当然也就千变万化,没有通用的算法可以解决所有的问题。

4 算法的特性

  • 算法有5个重要的特性:有穷性,确定性,可行性,输入,输出
  • 有穷性:一个算法必须总在执行有穷步后结束,且每一步都可在有穷时间内完成
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值