你想我猜小游戏

算法理解:算法是为了完成目标得一系列逻辑指令。

算法不仅限于再计算机程序中,在生活中我们也会经常使用

举个简单的例子,大家应该都玩过你想我猜的游戏,在1到100之间,你想一个数字,我来猜一个数字,然后你告诉我这个数字是大了还是小了,猜测次数最少的人获胜。这个游戏就会用到算法,下面详细说明一下2种玩法:

1、	按顺序从1开始猜直到猜到正确数字,这是一种方法(相信大家应该不会这样猜吧。。。),这种方法最大弊端就是十分不稳定,最少1次就猜到了,最多需要猜到99次!
2、	从中间开始猜,先猜50,是大是小直接就排除了一半的数字,然后再猜测一半,就这样不管你心里想的是哪个数字,我再7次之内都能猜到,因为每次猜测都将排查很多数字!
总结一下,这里2中玩法都是算法
第一种叫做简单查找算法,也就是每一个数字都要查一遍;
第二种叫做二分查找算法,这种算法就会比第一种快速且稳定的多,但是需要注意的点是,二分查找只适用于有顺序的内容,比如1到100是顺序排列这种算法会大大提高效率,如果不是顺序排列那么将毫无用处;

因此算法不是说任何地方都可以使用的,我们需要选择最有效,最适合的算法,才能达到最优解决方法。

大O表示法

说到算法,不得不提到“大O表示法”,是一种特殊的表示法,它指出了算法的速度有多快。但并非以秒或者时间为单位的速度。“大O表示法”能比较操作数,它指出了算法的运行时间增速。
下面再举个例子:
前面提到的简单算法的运行时间为O(n),n就代表查找的次数,最快1次最多99次。也就是不可能超过n次。
二分查找的运行时间为O(log n),也叫做对数时间,这里提到的对数是幂运算的逆运算,例:22 = 4 那么对数就是log24 = 2;
23 = 8,对数log28 = 3;24 = 16 对数log216 = 4;

总结

1、算法的速度指的并非时间,而是操作数的增速。
2、算法的运行时间用大O表示法表示
3、O(log n)比O(n)快,当需要搜索的元素越多,前者比后者快的越多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值