为了账号安全,请及时绑定邮箱和手机立即绑定

09年腾讯实习招聘面试题//纯C

09年腾讯实习招聘面试题//纯C

牛魔王的故事 2019-04-07 09:37:51
题目很简单,有两个有序数组A、B,各包含m、n个数据,给你一张纸一支笔,请写出一个函数,将A、B合并成一个新的有序数组。注意,由于数组的元素类型不确定(全是int,或者全是float,也可能是某个struct),所以你写的代码应当能处理不同类型的数据(类似C++的template技术)。注意,答案应当在不编译的情况下尽可能保证正确。你可以试着离开IDE/vim,直接在回答框里写代码。
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

随手写了一个typedefint(*__CMP__)(constvoid*c1,constvoid*c2);
/*
voidqsort(void*base,size_tnum,size_tsize,int(*comparator)(constvoid*,constvoid*));
dlen=DataLength
*/
void*combineArray(void*a1,size_ta1Len,void*a2,size_ta2Len,size_tdlen,__CMP__cmpFunc){
if(a1==(void*)NULL||
a2==(void*)NULL||
a1Len&a2Len==0)
{
return(void*)NULL;
}
unsignedchar*retArray=(unsignedchar*)malloc(a1Len+a2Len);
unsignedchar*p1=(unsignedchar*)a1;
unsignedchar*p2=(unsignedchar*)a2;
for(inti=0;imemcpy(retArray+i,p1+i,1);
}
for(inti=0;imemcpy(retArray+a2Len+i,p2+i,1);
}
qsort(retArray,a1Len+a2Len,dlen,cmpFunc);
return(void*)retArray;
}
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 302 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信