《算法很美》之竞赛算法两周自学速成总结

本文记录作者为准备程序设计竞赛,在两周内自学算法的总结,主要涉及位运算的应用(如判断奇偶、交换数值、计算1的个数等)和排序算法的理解(包括递归、斐波那契数列、插入排序、汉诺塔等)。通过每日总结,提升算法思维,并感谢B站up主的教学资源。
摘要由CSDN通过智能技术生成

写本篇博客的原因:在两周后2020.10.24需要参加程序设计竞赛,每天自学总结,借此培养并加强自己的算法思维,加油!另外,感谢B站讲授《算法很美》和《数据结构不难》的那个蓝桥教育的up主。
10.10

  • 位运算

1.判断奇偶数。X&1,为1,则X为奇数,为0,则X为偶数。

2.获取二进制位是1还是0。比如求一个数的二进制表示的第五位数字,把这个数右移4位得到的结果和1做与运算,为1则为1,为0则为0。

3.在不引进第三个变量的前提下,交换两个数的值。

int a=2,b=1;
a=a^b;
b=a^b;
a=a^b;
System.out.println("a=="+a+",b=="+b);

在这里插入图片描述

4.计算一个数的二进制的一的个数。一个很好的思想就是减1和原来的数与运算,然后一直重复下去直到出现0000全是0的时候,看做了多少次,那就有几个1。

5.一条语句判断一个整数是不是2的整数次方。

if(((N-1)&N
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值