当前位置:文档之家› 算法与程序设计基础-1

算法与程序设计基础-1


用自然语言描述 ••
开始
:x=0 n=6

x > n?

计算y值
输出
请思考算法正确性? x=x+1
C3结束二)
A
用Python语言描述丄
n=6 设置循环控制变量终值
for x in range(0f nf 1): 循环语句 y=x*x-2*x+3 print
"x="f x, "y="f y
循环体
'貝
题目:求N个数中的最大值
算法分析:假定有如下一串数字
11. 55. 99. 44. 77. 22. 66. 33. 88. 0
要求找出其中的最大数,并放到big中。
案例■■求N个数中的最大值
输入: N个数,假定N = 10
一重循环:比较N-1次,big=a(0), i=1
数学公式:bbigig<<a(ai()i:):big=a(i)
可读性一 健壮性
•一个算法可供人们阅读的容易程度,包 括 算法的书写、命名等应便于阅读和交流。
•一个算法对不合理数据输入的反应 能 力和处理能力
用自然语言表示 ■用流程图表示
用N-S流程图表示 ■用伪代码表示 ■用计算 机程序表示
自然语言表示
算法描述_ .
•类似于生活中的流水账,一步一步的顺序描述。
#include <stdio.h> main() ( int i, sum;
sum=0; for(i=0; i< = 10; i++) sun
= sum+i; printf("sum=%d", sum);
示例
\__________________丿
题目:
给定X的任一个值(0~5)
求函数f(x)=xA2-2*x+3的值。
i = i+语言 '-F —
1=1
丄高级语言程序的构成与执行

认识程序
基本概念
程序(program ):是指软件开发人员 根
据用户需求开发的、用计算机语言 (程序设 计语言)编写的、按一定的操 作歩骤完成指 定任务的一系列命令的集 合(指令、语句)。
import math a=4.5
其它:计算实发工资(基本工资+附加工资■扣除工资)
含义:按数据队列的某个关键字,从新排列其队列称为排 序
(升序/降序)。
4
实现排序的方法: 比较交换法 选择法 冒泡法(气泡上浮法)
定义:查找是指在大量的信息中寻找一个特定的信息元素 是计算机应用中的常用基本运算。
♦ 实现查找的方法: 顺序查找 二分查找(折半查找) 哈希表查找
+一种流程图形式,在这种流程图中完全去掉了流程 线,全部算法写在一个矩形框内。
顺序结构k.选择结构
循环结构
While P1 A
A Until P2
Sum = 0 n=1 if n<10
then sum=sum + n
n=n+1 else
print sum end
♦伪代码是一种在程序设计
过程中,表达想法的非正式 的符号系统。
分析:X取值在0~5区间
则:求函数f(0) ~ f(5)的值(共6个值)。
当x=0, y0=02-2*0+3 当x=1 , y1 = 12-2*1 + 3 当x=2 , y2=22-2*2+3 当x=3 , y3 = 32-2*3 + 3 当x=4, y4=42-2*4+3 当x=5 , y5 = 52-2*5 +
输出
最大值big
变量
存放10个数
big :存放最大值
i:元素控制变量.N :循环控制变量
开始
求N个数中的最大值
输入n个数:a(0). a(l). ・・■・・
假定a(0)最大:big=a(O). i=l
Y
比较:big
保存最大值: big = a(i)
匕较结束:i > n ? Y
输出最大数:big
结束二)
例如:
+每天从早晨到晚上的生活安排
♦做每到菜的实施过程
+个人学习规划
,______
用流程图表示
♦流程图是基于ANSI (美
国国家标准化学会)规定
的流程图符号,通过箭头 相巨连接的几何图形的表 达方式。
算法描述
打印 结束
表示算法的起止 算法要执行的处理过程 输入/输出
条件判断 算法执行的方向(连接线) 连接符(多页表示流程图)
print "求解完成!"
爪 Python 2.7.6 Shell
File Edit Shell Debug Opti
常规的数值计算算法:求最大/最小值、三角形面积、正弦/余弦. 迭代算法.递归算法,穷举算法,回溯算法…… 非数值算法:图书检
索.按图书或人名排序……
典型算法案例:又诺塔■百钱买白鸡,八皇后■兔子繁殖
空间复杂 可读性 健壮性
•算法设计应当满足具体问题的 需求,是评价一个算法优劣的 最重要的标准。
•执行算法在计算机上所花费的时间
算法评价
何谓算法
正确性
•算法需要消耗的内存空间,主要包 括
算法程序所占用的空间、输入的初 始
时间复杂度(运行 数据所占用的存储空间以及算法执 行
空间复杂度(占人 过程中所需要的空间。
函数声明
Python示例
b=3.7 c=5.2
赋值语句
s=(a + b+c)/2 函数调用
area = math.sqrt(s*(s・a)*(s・b)*(s・c)) r
计算表达式
print "a = ",a,"b=",b,"c=",c print "area = "farea
输出语句
_____________
算法特征 ■ -F —
1='
何谓算法
♦有穷性
.确定性 有0个或多个输 有1个或多个输出
•一个算法必须保证执行有 限步之后结束。
•算法的每一步骤必须有确 切的定义。
•算法中执行的任何计算步骤都是可以被 分 解为基本的可执行的操作步,即每个计 算 步都可以在有限时间内完成。
算法评价
正确性 ■ 时间复杂度
第七讲算法与程序设计基础
1.认识算法
学习内容 丄何谓算法 丄算法描述
丄常用算法 丄应用示意
算法与程序设计
算法(algorithm ):为解决一个问题而采取的方法和
步骤称为算法,即描述解题的操作步骤。
算法分类
数值算法:数值运算(如:求方程的根.成绩排列等) 非 数值算法:常用于事务管理(如:图书检索,姓名排 序等)
算法(algorithm ):对特定问题求解步骤的一种 描
述,它是指令的有限序列,其中每一条指令表示一 个 或多个操作,即是行为的说明,是一组逻辑歩骤。
A,
程序(program )是算法的一种表示,是指计算 机
按一定的操作步骤完成指定任务的一系列命令的 集合。 一个问题可以用多种计算机程序实现,但遵 循的逻辑 歩骤是相同的。
相关主题