《算法》第一课

一、代码规范

参考博客地址 https://blog.csdn.net/qq_40146984/article/details/82287351

1、程序块采用缩进风格编写,缩进空格数未4个

2、相对独立的程序块之间,变量说明之后必须加空行

3、较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

4、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

5、若函数或过程中的参数较长,要进行适当的划分。

6、一行只写一条语句

7、if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}

8、对齐只用空格键,不使用TAB键。

9、函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
10、程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
11、在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。
说明:采用这种松散方式编写代码的目的是使代码更加清晰。由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在C/C++语言中括号已经是最清晰的标志了。在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。

12、一般情况下,源程序的有效注释量必须在20%以上,注释内容清楚明了。

13、不使用不必要的常量

14、全局变量要有较为详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。

 三、《数学之美》观后感

  浏览目录后,我主要阅读的是吴老师《数学之美》一书的第二章和第四章。争对这两张,我的阅读体会如下。

       第四章的主题为“谈谈中文分词”,作者以中文分词的发展为顺序,首先提到中文分词最原始的方法——查字典,然而时常遇到一些字典中不存在,而日常生活中大家耳熟能详的复合词,比如“发展中国家”,正确分法应该是“发展-中-国家”,而原始方法往往分为“发展-中国-家”,此类歧义会困扰学者,而郭进博士运用统计语言模型成果解决了分词二义性问题,将错误率降低了一个数量级,往后国内外学者利用统计方法进一步完善了中文分词。于我而言最为熟悉的分词方法是jieba分词,尝试过使用jieba分词进行中文分词处理,并添加自己定义词典。Jieba分词使用简单,只要安装jieba库即可。

       第二章的主题为“自然语言处理”,对于NLP这一块,我仅对情感原因分析、情感分类有了解。曾经拜读过情感原因提取、情感原因配对的几篇论文。在今后的学习中,大致会以此为主要的学习方向。

       初读《数学之美》,是在新生入学,再读《数学之美》,对曾经不明白、不了解的专业名词有了一定的了解,也给我带来不一样的感受。

二、第一章 算法概述

  (一)算法满足下述四条性质:

  1、输入:有零个或多个由外部提供的量作为输入

  2、输出:算法产生至少一个量作为输出

  3、确定性:组成算法的每条指令是清晰、无歧义的

  4、有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的

  (二)通过例子引入斐波那契数列

  如爬楼梯、填瓷砖等 f(n)=f(n-1)+f(n-2) (n>2)

  比较了迭代法和递归法的运算速度

  迭代法:代码较复杂,速度快

  递归法:代码简单,当n较大时速度慢

posted @ 2021-09-11 19:08  mooonquakes  阅读(156)  评论(0编辑  收藏  举报