观java算法直播-算法启蒙(点燃算法)

                                观java算法直播-算法启蒙(点燃算法)

那天我正在家里看vue学习视频,然后QQ弹出那些报了名却没看的直播,刚好闲得慌,学了半天vue有点不耐烦了,我一看刚好java的课程,一点进去就看到老师在讲什么什么求2的整数次幂,在认真和不认真之间游走的看完了,差点没睡着,虽然粗略的看了一下,我觉得还是收获了几个知识点,因为这个这几个知识点还无法写成博客,那就写点燃了我对算法的哪个知识点吧。

求二的整数次幂

假如有一个变量n,这个时候我们要判断它是否是2的整数次幂,这个时候很简单,首先写一个循环,对2求余,判断是否为零,如果为零则将n的值改为n除2,然后判断n是否为1,如果不为1的话就继续循环直到余数不为零,或n等于1。这是老师第一个提出的想法,显然数值越大,循环次数越多,消耗时间也越多,而且代码的编写本身也很多。

老师提出了第二个想法,将2的整数次幂先举几个例子,例如2、4、8、16,接着就是直播的互动....问我们这几个数有没有什么规律,有哪位同学知道什么什么的,然后我发现水直播的人还蛮多的,明明啥都懂还来听,就跟我当年去学java基础第一章,安装环境变量...............于是分为两拨人,1、转换为二进制然后用&运算来判断  2、转换为二进制判断有几个1。

第一次接触算法的我听的一脸懵,我心想转换二进制我知道、&运算我知道,字符串查找我也知道但你这是干啥呢?接着老师开始讲解分别将2、4、8、16转换为二进制:

2:10

4:100

8:1000

16:10000

然后我一下就明白了第二种方案,因为就一个1还是在开头恩,一句话三步就能解决。但是老师压根就没理会第二种方案,将3、7的二进制写了一遍:

3:11

7:111

于是我又明白了(n&(n-1))==1就完了。。。在感叹算法的强大之余还对其有一丝敬意,我便很有兴趣的听了下去,接下来他讲了一个袋鼠跳跃的问题,也不知道是老师的表达问题还是第一次听算法,没听四分钟我就快晕了......

为了避开这个问题,我去学vue冷静了一下..........再次打开界面,那什么是时间复杂度、空间复杂度呢!

时间复杂度:就是度量一段算法执行所需时间长短 

空间复杂度:就是度量一段算法执行所占空间大小

....................接下来的老师提到知识点分别是:

B树:mysql索引、红黑树:jdk1.8hashmap引入、字典树:NPL,自然语言处理、人工智能、快速排序:基准数,除了快速排序之外老师并没有对其他内容进行讲解,毕竟这也是没办法在公开直播中讲这么多知识的无奈,虽然听不到但是我想以后一定会将这些只是好好学学,这也算是我的算法启蒙了,还有快速排序我会专门为此再写一篇笔记。

                                                                                                                         欢迎技术讨论:2161672665

                                                                                   感谢翻阅

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值