【数据结构与算法经典问题解析--java语言描述】_第20、21章_学习记录

本文深入解析位运算操作,包括按位与、或、异或、左移、右移及补操作,并探讨其在编程中的应用。此外,文章还介绍了多个经典编程问题,如螺旋顺序矩阵遍历、数组旋转算法、移动零至数组末尾及字符串空格处理等,旨在提升读者的算法理解和面试准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【数据结构与算法经典问题解析--java语言描述】_第20、21章_学习记录

第20章:

第21章:

1.1  本章主要介绍的是对于面试和考试有用的话题

1.2  位运算的使用

1.2.1 按位与操作

按位与(And)操作测试两个二进制数,如果两个数对应的位值均为1,则返回值中该位值为1;如果不同时为1,则返回0;

1.2.2 按位或操作

按位或(OR)操作测试两个二进制数,如果两个数对应的位值至少有一个为1,则返回值中该位值为1;当且仅当它们同时为0时,返回0;

1.2.3 按位异或操作

按位异或操作测试两个二进制数,如果两个数对应的位值不相同,则返回值中该位值为1;如果相同,则返回0;

1.2.4 按位左移操作

按位左移操作将操作数中的所有位向左移动,并用0填充空出的位。

1.2.5 按位右移操作

按位右移操作将操作数的所有位向右移动

1.2.6 按位补操作

按位补操作将一个二进制操作数的位取反。

1.3 其他编程问题

问题1: 设计一个算法,按照螺旋顺序依次输出矩阵中的元素。

问题2:基于反转算法的数组旋转问题。设计一个函数rotate(A[], d, n), 该函数将大小为n的数组旋转d 个元素。例如,数组1, 2, 3, 4, 5, 6, 7  在经过2个元素的旋转后变为3, 4, 5, 6, 7, 1, 2;

问题3:移动0到末尾。

问题4:将字符串中的空格移到末尾。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值