王道机试指南读后总结-1

来源:互联网 发布:重大网络诈骗事件 编辑:程序博客网 时间:2024/06/06 03:16

为了准备一下竞赛,开始从基础的研究生机试题刷起。今天看完了第二章大部分,第二章主要是介绍了排序、日期类问题、Hash、排版问题、查找、贪心等在机试中频繁出现的基本算法。

对于排版问题,一般来说可以看样例输出的格式,通过样例的格式推出到一般形式。但是由于输出一般来说是从左向右,从上到下,如果规律是一圈一圈的那种,就要先用二维数组存储需要打印的图案,然后再输出,也就是先通过定位左上点法、循环的方式去把图案全求出后,再输出。

对于排序问题,对于很多项目要比较的情况,一般用sort函数和cmp函数,也可以在结构体中重载小于运算符,这样就不用cmp函数了,sort就2个参数就够了。

写一个比较学生成绩的实例:

//运算符重载struct student{char name[10];int score;int age;bool operator <(const E &a){if(score!=a.score)return score<a.score;int a=strcmp(name,a.name)if(a!=0)return a;elsereturn age<a.age;}}s[100];


日期类的问题一般都必须判断闰年,并且把平年和闰年的每个月天数存在二维数组中,然后以某一天为标准来做。

Hash的机试问题似乎并不像书上考察的重点——解决冲突一样,这个感觉类似桶排序。

查找的话如果正常线性查找超时就要用二分查找,为了二分查找就要使某项指标排序,所以就又用到了小于符号重载和sort函数。

不过如果比较的量是字符串的话记得要用到strcmp函数。


0 0