推广 热搜: 账号  十大  关键词    通过  设备  魅力  广告  项目  程序 

找工过程中碰到的笔试面试题整理(3)

   日期:2024-12-20     作者:u4ron    caijiyuan  
核心提示:继续我的找工笔试面试题整理。1. 快排的两种写法以前一直用第一种方式进行快排的,笔试中出现了第二种头尾指针的快排。第一种:

继续我的找工笔试面试题整理。

1. 快排的两种写法

以前一直用第一种方式进行快排的,笔试中出现了第二种头尾指针的快排。

第一种:

 

 

第二种:

 

 

2. 结构体内存对齐问题

这个是非常常见的,笔试面试都很容易被问到,这里总结一下。

结构体各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。空缺的字节自动填充。同时为了确保结构的大小为结构的字节边界数(即该结构中占用最大空间的类型所占用的字节数)的倍数,所以在为最后一个成员变量申请空间后,还会根据需要自动填充空缺的字节。

 

 

另外,还有pack和align修饰符的规定。

#pragma pack规定的对齐长度,实际使用的规则是:
结构,联合,或者类的数据成员,第一个放在偏移为0的地方,以后每个数据成员的对齐,按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。

当数据定义中出现__declspec( align() )时,指定类型的对齐长度还要用自身长度和这里指定的数值比较,然后取其中较大的。最终类/结构的对齐长度也需要和这个数值比较,然后取其中较大的。

可以这样理解, __declspec( align() ) 和 #pragma pack是一对兄弟,前者规定了对齐的最小值,后者规定了对齐的最大值,两者同时出现时,前者拥有更高的优先级。

3.在循环有序数组中查找某个元素

这个题目比较有意思,在普通有序数组查找直接折半即可,但是循环有序数组还得考虑一下很多问题。因为并不知道循环的起始位置。如下:

123456

234561

456123

PS:仅针对顺时针有序循环数组

本文地址:http://yybeili.xhstdz.com/xwnews/588.html    物流园资讯网 http://yybeili.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号