2024.4.7 算法设计与分析 复习 绪论

本文分享了作者复习算法时的学习心得,重点讲解了算法解决问题的基本流程、正确性证明、时间空间复杂性、伪代码书写规范,包括变量定义、分支、循环、函数等关键部分。
摘要由CSDN通过智能技术生成

这个笔记用于我本人的复习,所以引用了很多东西。如果被侵权了请联系我,我会删掉,谢谢。:-)

写这个笔记,根本目的是希望我能养成做有效笔记的习惯,帮助我提高学习的效率。除此之外,我还希望能借由这个渠道来锻炼我书面表达的能力(因为发现上了大学之后越来越不会写文章了,偏偏又还有一堆文章要写 :-(  )以及提取信息的能力。

说实话,不知道我能坚持多久,但是我还是希望我能一直坚持下去。

今天来复习算法。

先来引入一下使用算法来进行解决一个计算问题的基本流程

算法正确性的概念:

以下还有关于算法正确性证明的一些方法: 

还有一些时间、空间复杂性的概念,绪论中只是简单的引入,后面我们会经常用到,这里不多赘述。

在学习算法的时候,学习伪代码如何书写是很重要的技能。当然考试肯定会考这个,不过如果能正确规范地写出伪代码,对我们未来的编程也是大有好处的。

这位大佬的文章比较详细的记载了伪代码的一些规范写法,我们在这里简单的进行下总结。

定义变量的语句可不用写出来,但必须在注释中给出。示例如下:
赋值:  x ← y+1 
交换 a 和 b 的值:  a <-> b 

幂运算 ^
取模 mod
逻辑与 and
逻辑或 or
逻辑非 not
逻辑异或 xor
(其他与C语言符号相同)

还有关于分支、循环和函数的写法

这是分支的写法

if n > 0 then
    print("n 是一个比 0 大的数字")
else if n < 0 then
    print("n 是一个比 0 小的数字")
else
    print("n 就是 0")

这是循环的写法

(1)while 用于次数未定的循环。
n ← 10
while n > 0 do
    print ("n =" + n)
    n ← n-1
(2)for 用于次数固定的循环。
for i ← 0 to n do
    print ("hello, world!")
(3)如果想遍历某个集合:
// A是一个集合
for each i in A do
    print(i "hello pseudocode")

这是函数的写法

//必要情况下,附上说明函数功能以及返回值类型,格式如下
//返回值类型:功能说明
function func_name(x, y)
    ...
    return x + y

必须说明的是,伪代码的写法并不是唯一的,有些地方可能会有细微差别,但是一些基本操作(例如赋值语句)较为规范,最好不要擅自创新。

绪论的重点内容就这些。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值