算法第一次作业

                   分而治之,各个击破

                                             ---读《数学之美》章节有感

 

    当遇到大规模数据需要进行排序或运算时,由于运算规模大,解决问题所需的时间自然会更长。此时要想提高效率,除了一些设备上的更新以外,更重要的是算法的优化。

    在看到《数学之美》的最后一章之前,我只了解其中一个算法:归并排序法。其中解决大量数据排序的一种方式就是不断地拆分,等数据拆分至排序较为快速的大小后,分别进行排序,然后再进行两两合并,再把合并后的数据重新进行排序。重复以上吗操作,直至所有数据排序成功。这就是分而治之的一种直观体现了。

    在《数学之美》一书中提到的各个击破算法,在我看来可,就是对拆分后合并的一个很好且更全面的解释。而且作者还列出了具体节省的时间,还从分治算法引申出了MapReduce。让我们了解到更多相关的信息,也对分治的思想有了更深入的了解。

  

代码规范

 GoogleC++

命名约定

1、总体规则:不要随意缩写,如果说 ChangeLocalValue 写作ChgLocVal还有情可原的话,把ModifyPlayerName写作MdfPlyNm就太过分了,除函数名可适当为动词外,其他命名尽量使用清晰易懂的名词;

2、宏、枚举等使用全部大写+下划线;

3、变量(含类、结构体成员变量)、文件、命名空间、存取函数等使用全部小写+下划线,类成员变量以下划线结尾,全局变量以g_开头;

4、普通函数、类型(含类与结构体、枚举类型)、常量等使用大小写混合,不含下划线;

 

格式

1、行宽原则上不超过80列,把22寸的显示屏都占完,怎么也说不过去;

2、尽量不使用非ASCII字符,如果使用的话,参考 UTF-8 格式(尤其是 UNIX/Linux 下,Windows 下可以考虑宽字符),尽量不将字符串常量耦合到代码中,比如独立出资源文件,返不仅仅是风格问题了;

3UNIX/Linux下无条件使用空格,MSVC的话使用 Tab 也无可厚非

4、函数参数、逻辑条件、初始化列表:要么所有参数和函数名放在同一行,要么所有参数并排分行;

5、除函数定义的左大括号可以置于行首外,包括函数//结极体/枚举声明、各种语句的左大括号置于行尾,所有右大括号独立成行;

6./->操作符前后丌留空格,*/&不要前后都留,一个就可,靠左靠右依各人喜好;

7、预处理指令/命名空间不使用额外缩进,类/结构体/枚举/函数/语句使用缩进;

8、初始化用=还是()依个人喜好,统一就好;

9return不要加()

10、水平/垂直留白不要滥用,怎么易读怎么来。

 

 

posted @ 2021-09-11 15:28  是小七  阅读(52)  评论(0编辑  收藏  举报