免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: zhutroy
打印 上一主题 下一主题

卖米 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2005-11-26 11:35 |只看该作者
面过几个公司 C方面的试题:
1. 对内存的理解, 堆,堆栈,静态存储区等。
2. 指针,2级指针,动态内存分配
3. 结构体,联合
4. 库函数,程序优化
以前有个面试题:实现并说明(在不同体系结构下怎么优化):
memcpy(char *buffer, long int *p, size_t len)
括号部分现在还不会。

论坛徽章:
0
22 [报告]
发表于 2005-11-26 13:02 |只看该作者
原帖由 超级大色狼 于 2005-11-22 10:09 发表
能要到多少钱和技术无关,如果你用这种消极的态度写简历,别说3K,根本就找不着工作。
写简历就是要把不会的东西写成了解,把了解的写成熟悉,把熟悉的写成精通,把精通的写成一代宗师。






                                                          一针见血

论坛徽章:
0
23 [报告]
发表于 2005-11-27 00:12 |只看该作者
谢谢回复啊! 这两天笔试去了,没上坛子。
昨天笔试thomson ,有个题目:
for(i=0;i<1000;i++){
for(j=0;j<10;j++)
{
sum=sum+array[i][j]
}
}要求优化一下
我想的:
while(j--){
if (i=0)
i=1000;
while(i--)    //当时发晕了,把这一步漏了,该错了,后悔啊
result+=result+array[i][j];
}
当然应该有比较好的优化方法

你这样优化了吗?实际上主要的优化在于sum=sum+array[i][j] 语句的时间,时间复杂度不可能减少。
每次都计算了偏移i又要加j。
实际上你这样效率更低了,因为多了if,而且if每次都要cmp,哪怕几乎很少i==0,而这个语句相当于求和语句的时间的1/2~1/3左右。


应该这样。
i=0;
int *ip=&array[0][0];
while(i++<10000)
        sum+=ip[i];

论坛徽章:
0
24 [报告]
发表于 2005-11-27 09:59 |只看该作者
谢谢楼上的 当时要求不要改变求和语句, 可能考察的是循环方面的优化
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP