接上一版
4)设计实现过程。
整个程序实现大体是使用c语言完成的,一共设计了8个函数。分别有判错,处理-c命令,处理-s命令,DFS搜索等等类别。
5)程序改进。
之前的想法是裸爆搜,写完之后发现真的是太慢了,跑10000组用例就需要4s钟。后来 改进了算法之后,100w也能够在2s左右跑完。下面展示 性能分析图。
前后 两次对比可以发现,性能有些变化。下面这个是单独的对函数和变量的测试,createJGG是调用最多的函数。
6)代码说明。
1>define.h展示
写项目之前要提前设计好整个程序的框架,在这个头文件里我提前定义好了所有的函数名以及它们的用途。
所有函数的功能和用途都以注释的形式写好,方便大家理解和阅读。
2>主函数
主函数比较简洁明了,因为大部分函数都已经成块,只要在主函数里面调用就好了。
然后一些小判断,加上-c,-s处理了。
-c就是组合数变换,-s就是dfs爆搜。简单明了,效率还行。生成100w需要2s,解100w4,5min钟。
PSP;
PSP2.1 | Personal Software Process Stages | 预估耗时(min) | 实际耗时(min) |
Planning | 计划 | 30 | 25 |
Estimate | 估计这个任务需要多少时间 | 1200 | 1400 |
Development | 开发 | 600 | 750 |
Analysis | 需求分析(包括学习新技术) | 120 | 100 |
Design Spec | 生成设计文档 | 30 | 20 |
Design Review | 设计复审(和同事审核设计文档) | 10 | 15 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 10 | 20 |
Design | 具体设计 | 30 | 40 |
Coding | 具体编码 | 120 | 240 |
Code Review | 代码复审 | 30 | 20 |
Test | 测试(自我测试,修改代码,提交修改) | 120 | 60 |
Reporting | 报告 | 30 | 30 |
Test Report | 测试报告 | 10 | 10 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 30 | 30 |
| 合计 |
|
|