发布时间:2013-01-09 12:03:58
[post] 一. 华为一道面试题-1-n排序有N个大小不等的自然数(1--N),请将它们由小到大排序。 要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。网上转的,一开始也没有注意到最开始的半句。 算法:N个不等的自然数1~N,排序完成后必然为1~N。所以可以一次遍历,遇到a!=i的就把a和a[a]交换。 void sort(int a[], int n){int i;int t; /*临时变量:空间复杂度O(1)*/ for (i=1; i<n+1; i++) /*时间复杂度O(n)*/{while(a!=i){t = a[a]; a[a] = a;//排......【阅读全文】
发布时间:2013-01-09 12:03:47
[post] 21. New delete 与malloc free 的联系与区别?答案:都是在堆(heap)上进行动态的内存操作。用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对象的构造函数。delete 会调用对象的destructor,而free 不会调用对象的destructor.22. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?答案:i 为30。23. 有哪几种情况只能用intialization list 而不能用assignment? 答案:当类中含有const、reference 成员变量;......【阅读全文】
发布时间:2013-01-09 12:03:38
[post] 16. 关联、聚合(Aggregation)以及组合(Composition)的区别?涉及到UML中的一些概念:关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系: 500){this.resized=true;this.style.width=500;}" border=0>从实现的角度讲,聚合可以表示......【阅读全文】
发布时间:2013-01-09 12:03:26
一位同学整理的常见笔试/面试题目,答案仅供参考,不代表本人观点。 这个东西有些参考价值,和同学讨论一下发现还是有些错误,1.已知strcpy函数的原型是: char * strcpy(char * strDest,const char * strSrc); 1.不调用库函数,实现strcpy函数。 2.解释为什么要返回char *。解说: 1.strcpy的实现代码 char * strcpy(char * strDest,const char * strSrc) { ......【阅读全文】
发布时间:2013-01-09 12:01:57
Linux汇编语言开发指南 一、简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。 大多数情况下 Linux 程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在 Linux 操作系统中也可以用完全用 C ......【阅读全文】