计算机算法设计与分析第一次博客作业

    很少有主动去读数学类的书籍,一是我本身对数学并不是十分感兴趣,对数学的态度是需要用就学,必须学才学,数学类的书籍对我来说都是大部头,啃不动的硬骨头。二是我的数学相对于其他科目学的并不是很好,有些比较难理解的知识点要花好久才能读懂,很费时间。

对于《数学之美》这本书,我在高中时老师有推荐过,大一时工程线性代数课上也听老师提起过这本书的相关内容,直到这次,老师要求读我才去读说来有点惭愧。

读了这本书,我发现它并没有我想象的那么枯燥乏味,就像作者在前言中所说:“读一读数学的东西,会让你受益良多,同时能感受到宇宙和世界的美好和奇妙。”真的如作者所言,我从这本书里学到了很多科学原理和思想方法,同时从我们专业的角度去解读更是能更加深刻的理解一个概念等。

整本书里我印象最深刻的章节就是“图论和网络爬虫”这一章节,在这一章节,我见到了许多老朋友:离散数学,数据结构,线性代数……在我看来,这些科目都有千丝万缕的联系,相辅相成,粗略的翻了一下算法这本书,感觉它也是好几门科目的集合体。(扯远了,刚刚在说爬虫)我对爬虫这一章节印象深刻是因为我暑假在自学爬虫,有很多不懂的地方,查不出来也就不求甚解的学下去,所以有时只关注代码,并不去理解其原理,这是大大不可取的。这一章虽然短,但是我知道了什么时候该用BFS和DFS,页面的分析和UPL的提取原理还有怎样应用URL表。

在读计算机专业之前,对打代码没什么概念,大一由于知识有限,只能打一些简单的代码,所以理解也不是很深,我觉得这本书从方方面面展示了数学与代码的意义和作用,让我突然想到了有一次听一位师兄讲经验,他说:“到了大学毕业,你会觉得什么都可以用代码表示出来!”真的很神奇又听起来很自豪,当然这是一个好的程序员该具备的应有的技能。

怎样去当一个好的程序员呢?还是听一位师兄说:“

一流程序员靠数学,

二流靠算法,

三流靠逻辑,

四流靠SDK,

五流靠Google和StackOverflow,

六流靠百度和CSDN”

真的是过于真实,但同时凸显了数学和算法的重要性,一个好的程序员的内核所在。

在之前,我对自己要求不高,导致数据结构的基础并不是很好,但是这次,我对算法课绝不能掉以轻心,我会把我还未掌握的数据结构知识补回来,同时努力培养自己的算法思维,懂得去优化一个算法。(好像由数学之美偏题到很远了?)。

暂时还没想到用算法要实现一个怎样的软件,可能是爬取网易云音乐评论关键词的软件吧,

 

我的代码规范

规范的目的:

提高代码的健壮性,使代码更安全、可靠;

提高代码的可读性,使代码易于查看和维护。

http://www.cnitblog.com/qiuyangzh/archive/2005/07/15/973.html

https://www.cnblogs.com/Spacecup/p/3701352.html

 

1格式

1.1空行的使用

在头文件和实现文件中,各主要部分之间要用空行隔开。

在一个函数中,完成不同功能的部分,要用空行隔开。

1.2 哪里应该使用空格

   在使用赋值运算符、逻辑运算符、位运算符、算术运算符等二元操作符时,在其两边各加一个空格。

 函数的各参数间要用“,”和一个空格隔开。

不要在引用操作符前后使用空格,引用操作符指“.”和“->”,以及“[]”。

 

不要在“::”前后使用空格。

 

不要在一元操作符和其操作对象之间使用空格,一元操作符包括“++”、“--”“!”、“&”“*”等

1.3 缩进

对程序语句要按其逻辑进行水平缩进,以两个空格为单位,使同一逻辑层次上的代码在列上对齐。

1.4 长语句的书写格式

较长的语句要分成多行书写。长表达式要在低优先级操作符处分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,缩进长度以两个空格或Tab符长度为单位。

1.6 清晰划分控制语句的语句块

控制语句(if , for , while , do...whule)的语句部分一定要用 ‘{ ’和‘ }’括起来(即使只有一条语句),并且‘{ ’和‘ }’应处在同一列上。

1.7 一行只写一条语句

一行只写一条程序语句。

// 不要这样写

x = x0; y = y0;

while(IsOk(x)) {x++;}

// 应该这样写代码

x = x0;

y = y0;

while(IsOk(x))

{

x++;

}

1.8 一次只声明、定义一个变量

1.9 在表达式中使用括号

对于一个表达式,在一个二元、三元操作符操作的操作数的两边,应该放置“(”和“)”。

// 下面这行代码:

result = fact / 100 * number + rem;

//最好写成这样

result = ((fact / 100) * number) + rem;

2命名

一般变量名应以小写字母打头,各英文描述单词的首字母分别大写,其他字母一律小写。

常量的名字要全部大写

所有用宏形式定义的名字,包括宏常量和宏函数,名字要全部大写

自定义类型名应以大写字母打头。

函数名应以大写字母打头。

名中含多于一个单词时,每个单词的第一个字母大写。

尽量使用有意义的名字。应做到见其名知其意。

 

 

 

2.1 禁用Goto语句

2.2 避免对浮点数值类型做精确比较

举例:

//不要象下面这样写代码:

float number;

… …

        if (number = = 0)              //精确比较

… …

2.3函数

函数体代码长度不得超过100行(不包括注释)。

应该尽量保证一个函数只有一个出口

2.4 公共变量

在程序中要尽可能少的使用公共变量。在决定使用一个公共变量时,要仔细考虑,权衡得失。

防止公共变量与局部变量重名。

转载于:https://www.cnblogs.com/miaobeilei/p/11485265.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值