计算机软件技术基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
1.3 算法的复杂度分析
算法的时间复杂度(算法的工作量) 采用算法在执行过程中所需基本运算的执行 次数来度量算法的工作量。 相关因素: (1)基本运算次数还与问题的规模n有关。算法 的工作量=f(n) (2)当取决于某一个特性输入时,有两种方法来 衡量工作量: A(n ) p( x )t ( x ) ① 平均性态 xD
软件从短小、精干、讲究效率到复杂可靠、兼容性强、结构性好
5
计算机软件
软件的概念 软件是:与一系统(尤指计算机系统)有关的程序、步 骤和有关文件编制的完整集合。特指特定类型计算机 所使用的程序的总称,连同与计算机或程序有关的资 料,例如手册、图表和操作指令。 功能:针对一个系统(计算机),合理组织工作。 程序设计语言的发展 经历:机器语言,汇编语言,高级语言,面向对象语 言… 软件的发展:语言的发展-操作系统的出现-数据库的出现 -网络的出现
15
2、归纳法
基本思想
通过列举少量的特殊情况,经过分析,最后找出一 般的关系。
16
2、递归法
基本思想 为了降低问题的复杂度,总是将问题组成 分解,最后归纳为一个最简单的问题,当解决 这个简单问题后,再沿着就原来分解的逆过程 逐步进行综合,这就是递归。
17
例题:用递归方法求n!
递归公式表示:
W (n) max{ti 1 i n 1} n
24
算法的空间复杂度
一般指执行这个算法所需要的内存空间, 包括算法程序所占的空间、输入的初始数据所 占的存储空间以及算法执行过程中所需要的额 外空间。
25
6
数据结构、操作系统、数据库与软件工程
数据结构:描述数据及数据元素之间的关系,数据在 计算机系统中的存储方式及数据的运算。 软件技术基础的基础 操作系统:方便用户有效利用各种软、硬件资源的程 序的集合 建造工作环境、平台 数据库:可以共享相关数据,以一定组成方式的集合 进行数据信息处理的强大应用。 软件工程:软件设计的基本过程,思想和方法。
fac(4) =fac(3)*4 fac(3) =fac(2)*3
fac(4) =24
fac(3) =6
fac(2) =fac(1)*2 fac(1) 1
fac(2) =2
18
程序
#include <stdio.h> int main() {int fac(int n); int n; int y; printf(“input an integer number”); scanf(“%d”,&n); y=fac(n); printf(“%d!=%d\n”,n,y); Return 0; int fac(int n) {int f; if(n<0) printf(“n<0,data error!”); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return(f); }
n
② 最坏情况复杂性
W (n ) max {t ( x )}
xDn
22
举例:采用顺序搜索法,在长度为n的一维数组中 查找值为x的元素
平均性态分析: 设需要查找的x出现在数组中每个位置上的可能性一样,概率 为q/n,x不在数组中的概率为1-q
i, ti n , 1 i n i n 1
列举法
基本思想:根据提出的问题,列举所有可能的 情况,并用问题中给定的条件检验哪些是需要 的。 特点:算法简单;工作量大
14
举例:设每只母鸡值3元,每只公鸡值2元,两只小 鸡值1Βιβλιοθήκη Baidu。现要用100元买100只鸡,设计买鸡方案。
方案一 假设买母鸡i只,公鸡j只, 小鸡k只。 procedure baiji for i=0 to 100 do for j=0 to 100 do for k=0 to 100 do {m=i+j+k n=3i+2j+0.5k if((m=100)and(n=100)) then output I,j,k} return 方案二 procedure baiji for i=0 to 33 do for j=0 to 50-1.5i do {k=100-i-j If(3i+2j+0.5k=100) then output I,j,k} return
报告20%+期末考试成绩60%
3
绪论
计算机硬件及其发展 计算机软件
数据结构、操作系统、数据库与软件工
程
4
计算机硬件及发展
发展历史 电子管 晶体管 集成电路 超大规模集 成电路 发展路线及规律 速度慢 速度快 体积大容量小 体积小容量大 外设少、简单 外设繁多、复杂 二进制处理原则
比较次数
q / n pi 1 q
1 i n i n 1
平均情况下比较次数
A(n )
p t (q / n)i (1 q)n (n 1)q / 2 (1 q)n
i i i 1 i 1
23
n 1
n
(2)最坏情况复杂度
最坏情况是发生在需要查找的x是数组中的最 后一个元素或x不在数组中的时候,此时显然
课程设置
算法 基本数据结构及其运算
查找与排序技术
资源管理技术
数据库技术
应用软件设计与开发技术
1
学习目的 1、了解软件技术基础知识 2、掌握数据结构的概念,几种基本 结构,查找和排序方法,能编写正确 算法。编写简单程序。 3、掌握资源管理技术的相关知识
2
学习与考核
教师讲授为主
上机实验:上机语言c语言 考核方式:平时成绩20%+上机实验、完成实验
20
c11 x1 x4 x5 x7 c x x 12 3 5 c21 x2 x4 c11 x1 x3 x2 x6
回溯法 基本思想:
通过对问题的分析,找出一个解决问题的线索,然 后沿着这个线索逐步试探,对于每一步的试探,若试 探成功,就得到问题的解,若试探失败,就逐步回退, 换别的路线再进行试探。
10
怎样表示一个算法
1、用自然语言表示算法
2、用流程图表示算法
3、用伪代码表示算法 4、用机器语言表示算法
11
算法设计基本方法
在数据结构中常见的问题
创建、插入、删除、更新、检索、排序……
注意:每个问题都有一种和多种算法
找到效率最高的;
以最容易理解的方式设计;
设计的算法不容易出错或出错情况较少。
12
算法的基本要素
(1) 对数据对象的运算和操作:
a). 算术运算,加、减、乘、除等运算; b). 逻辑运算,“与”、“或”、“非”等运算; c). 关系运算,“大于”、“小于”、“等于”、“不 等于”等运算; d). 数据传输,主要包括赋值、输入、输出等操作;
(2) 算法的控制结构
13
算法设计基本方法
a A 11 a21
a12 a22
b B 11 b21
b12 b22
两个矩阵相乘只需要7次乘法 设 n=2k ,n=2k 阶矩阵相乘,所需要 的乘法次数M(k) M(k)=7M(k-1)= 72 M(k-2)=…= 7k M(0) = 7k≈n2.81
7
第一章算法
算法的基本概念
算法设计的基本方法
算法的复杂度分析
C语言简介
8
2018/10/15
算法的基本概念
算法是指解题方案的准确而完整的描述。 算法的基本特征
(1)能行性 (2)确定性 (3)有穷性 (4)拥有足够的情报
9
算法与程序
相同点:都是解决问题的方法和步骤 描述方法:程序使用程序设计语言 算法使用框图或其他语言 联系:程序用某种程序设计语言来实现算法
19
减半递推技术
所谓“减半”,是指将问题的规模减半;所谓“递推”, 就是重复减半的过程。 举例:设两个二阶矩阵为
需要8次乘法
c C AB 11 c21 c12 a11b11 a12b21 c22 a21b11 a22b21 a11b12 a12b22 a21b12 a22b22