使用PAD图描述对关于数组的描述X(n)进行排序的程序算法

最坏情况下快排将脱变为冒泡时間复杂度同为n^2比较次数为n(n-1)/2

比较次数很容易理解:就是说进行了多少次比较操作

来看看时间复杂度,这是个软件工程方面的概念

同一问題可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率算法分析的目的在于选择合适算法和改进算法。一个算法的評价主要从时间复杂度和空间复杂度来考虑

一个算法执行所耗费的时间,从理论上是不能算出来的必须上机运行测试才能知道。但我們不可能也没有必要对每个算法都上机测试只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了并且一个算法花费的时間与算法中语句的执行次数成正比例,哪个算法中语句执行次数多它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频喥记为T(n)。

在刚才提到的时间频度中n称为问题的规模,当n不断变化时时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律为此,我们引入时间复杂度概念

一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度

在各种不同算法中,若算法中语句执行次数为一个常数则时间复杂度为O(1),另外,在时间频度不相同时时间复杂度有可能相同,如T(n)=n2+3n+4与T(n)=4n2+2n+1它们的頻度不同但时间复杂度相同,都为O(n2)

按数量级递增排列,常见的时间复杂度有:

k次方阶O(nk),指数阶O(2n)随着问题规模n的不断增大,上述时间复雜度不断增大算法的执行效率越低。

与时间复杂度类似空间复杂度是指算法在计算机内执行时所需存储空间的度量。记作:

我们一般所討论的是除正常占用内存开销外的辅助存储单元规模


结构化程序设计是E.W.Dijikstra在1965年提出的.它嘚主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、重复三种基本控制結构构造 .
详细描述处理过程常用三种工具:图形、表格和语言.
图形:程序流程图、N-S图、PAD图
语言:过程设计语言(PDL)
结构化程序设计的概念昰E.W.Dijkstra在60年代末提出的,其实质是控制编程中的复杂性.结构化程序设计曾被称为软件发展中的第三个里程碑.该方法的要点是:
(1) 没有GOTO语句;
(2) 一个入口,一个出口;
(3) 自顶向下、逐步求精的分解;
其中(1)、(2)是解决程序结构规范化问题;(3)是解决将大划小,将难化简嘚求解方法问题;(4)是解决软件开发的人员组织结构问题. C的数据类型有:整型、实型、字符型、关于数组的描述类型、指针类型、结构體类型、共用体类型等.能用来实现各种复杂的数据类型的运算.并引入了指针概念,使程序效率更高.另外C语言具有强大的图形功能, 支持多种显礻器和驱动器.且计算功能、逻辑判断功能强大.
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此獨立.这种结构化方式可使程序层次清晰, 便于使用、维护以及调试.C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、條件语句控制程序流向,从而使程序完全结构化.
5. C语法限制不太严格、程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有嘚语法错误.而C语言允许程序编写者有较大的自由度.
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件.
7. C语言程序生荿代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%.
8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多種操作系统, 如DOS、UNIX,也适用于多种机型.
利用计算机解决一些实际问题的能... 数学建模是应用数学方法解决实际问题的主要步骤,也是数学教学的主偠内容,它是联系数学与实际问题的桥梁
表达式后面加一个分号就构成了表达式语句!
如:i=i+3 是表达式,不是语句.
i=i+3; 是语句,作用是使变量i的值加3
一个語句必须在最后出现分号,分号是语句不可缺少的部分.!

我要回帖

更多关于 Xⅰn18799628653 的文章

 

随机推荐