Java算法怎么学?算法是什么?(下)

接着昨天的讲吧。现在大家对算法应该都有了点最基本的概念了吧?那么我们下面来说一下,算法的几个特征,算法的基本特征有五个,分别是输入,输出,确定性,可行性,有穷性。

算法五大特征

1. 输出和输入

输出和输入就比较好理解了吧?输入就是指输入参数,绝大多数的算法都是要有输入参数的,这就是他的输入特征,输出呢,输出是算法必须要用到的,因为你算出来的结果你要返回,或者去打印出来,不然的话你要这个算法有什么用呢?

2. 确定性

确定性,就是说,算法的每一个步骤有且只会有一种含义,不可能说这个步骤,我可能干这个也可能干那个。打比方说,你买饭的时候你跟商家说,多打点,这个多打点就是多义的,你是多打饭还是多打菜?这就是不确定的。 算法在一定条件下,他只会有一个执行路径的,你给我相同的输入我一定返回给你相同的输出。

3. 可行性

这个就很简单,就是说,你的算法,每个步骤都必须是可行3的,他每一步都可以通过执行有限的次数完成

4. 有穷性

有穷性指的是,你的算法不可能出现 while(true)这种无限循环结束不了的情况。并且,你的算法的每个步骤都要在可接受的时间的内结束,你不可能说你的算法一跑好几年,那要它有什么用?对吧。

算法设计的要求

昨天的时候我讲算法,相同的题目,我每个都提供了多种解决方法,这也就变相的说明了,算法,不是唯一的。写算法最重要的是什么?对于初入门的人来说,最重要的是算法的正确性,你不能说,你写个算法,连计算结果都是错的吧?那还写个鬼,去我们群里找大黄,蛋蛋玩吧.

1. 正确性

怎么定义什么算法才算正确?算法的正确性,首先,我们要看我们有没有满足算法的五大基本特征,忘记了的翻回上面看。满足了的话,我们来看,首先看一下程序有没有语法错误,再看给你一个合法的输入,你是否能返回给我正确的输出。再看如果给你一个不合法的输入,那你是否能给出满足规格条件的输出结果。 做到以上三点就已经可以说明算法没问题了。

2. 可读性

算法的设计除了要得到准确的计算结果,还应该要有一层目的,就是,能让别人看得懂才行,不要听一些人扯犊子告诉你,代码一定要自己看得懂,别人看不懂,那种情况,时间一长你自己都不知道自己怎么写出来的。

3. 健壮性

当你输入的数据,是不合理的,不合规则的,这个时候你要能做出相关的处理,而不是任由他去报异常信息。

4. 效率,内存

这个特点,对新人来说是不做强硬的规则,但是这事作为一个算法优质与否的判断条件。也就是,好的算法应该要同时满足,时间效率高,内存占用低这两个条件。

好了,算法就讲到这吧,算法只能提供思路,无法提供给你具体的学习方法,如果真的很想提高算法水平,多去了解一下数学方面的公式之类的,可以给你提供非常大的帮助。好了结束。就这样。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值