计算机基础——3.3 算法与程序设计语言

程序,算法和数据结构

尼.沃思提出,程序=数据结构+算法,研究计算机就是研究算法
软件的主体是程序,程序的核心是算法,而算法建立在数据结构基础上

程序是软件的核心,这毋庸置疑.而算法是程序的核心,因为没有算法,你写不出一个程序,任何合理的程序都应该有一个或多个算法,而数据结构是算法的核心.数据结构就是数据存储的方式,只有先存好数据,才能研究算法.就好比写C语言程序,先要定义变量,再执行语句

算法即为解决问题的方法和步骤

算法特点

  • 确定性
  • 有穷性
  • 能行性
  • 至少一个输出
  • 确定性实现的每一个操作含义必须明确,无二义性.不要有歧义.
  • 执行有限个步骤后结束.不能无限
  • 操作都是计算机可执行的.不能搞计算机看不懂的算法
  • 至少有一个输出,可没有输入

不是所有问题都有算法

描述方法

  • 程序设计语言等
    计算机基础——3.3 算法与程序设计语言

算法和程序区别

  • 程序是算法的具体实现
  • 程序可以无穷,算法必须有穷
  • 程序中的语句必须是机器可执行,而算法操作不用
  • 算法与程序是相应的,但不一一对应
  1. 程序实现具体算法
  2. 程序只要你能写,那就能无穷无尽
  3. 程序语句如果机器执行不了,那肯定跑不出来.算法不需要执行,只要能看懂就行
  4. 算法和程序不一定一个一个对应.

算法分析

  • 空间代价(空间复杂度)
  • 时间代价(时间复杂度)

算法设计

  • 由粗到细
  • 由抽象到具体
  • 逐步求精

算法需要看占用多少内存,需要多少运行时间
算法设计要从大到小.比如LOL设计师设计皮肤,要先定大致样子,建出模型,再定具体实现细节.

数据结构构成

  • 逻辑结构
  • 物理结构
  • 运算结构(数据的运算)

这其实就是一个英雄,比如亚索.我们总想着操作的样子,那就是逻辑上这么想,但实际上,是0/22,也就是物理上,实在的.
数据的运算,定义是基于逻辑结构的,而运算是实在的,也即是针对物理结构.

程序设计语言

程序设计语言分类

  • 机器语言
    意义
    机器语言是计算机的母语
    特点
    可移植性最差
    唯一可被计算机直接执行
    执行速度最快
  • 汇编语言
  • 高级语言
    特点
    执行速度相对慢
    可移植性好
  1. 机器语言是最接近计算机的语言,计算机也只能读懂机器语言,因此计算机执行自己的母语,因此指令系统也就是机器语言,速度也是最快的。但计算机本性难移,它不可再不同类型的计算机上直接执行,指令集不同,可移植性最差的也是机器语言
  2. 汇编语言就是在机器语言的基础上,增加了点可读性,就是让人能够看懂一些了,但也不是高级语言.
  3. 高级语言就如C语言,Python等。执行速度相对于机器语言还是要慢不少的,但是他们大多具有跨平台的特性,就是说Windows上能跑,Unix上也能跑

程序设计语言的基本成分

  • 数据成分
  • 运算成分
  • 控制成分
  • 传输成分

数据成分就是程序所处理的数据对象,运算成分是算术表达式,逻辑表达式之类。控制成分就如if,else语句,传输成分就是输入输出语句等.

三大结构
顺序,选择,循环
通过三大结构可以实现任何复杂程序

顺序对应着C语言中的正常书写代码,而选择就是if,else if,循环就是for,while,do while.没有程序通过这三大结构实现不了的

程序设计语言处理系统

翻译程序
翻译前-程序叫源程序
翻译后-程序叫目标程序

比如C语言的源程序就叫做.c,而其目标程序就是.obj,只不过现在编译器里不太容易看到

翻译程序按按不同的翻译处理方法分类

  • 汇编程序
    汇编语言到机器语言的翻译程序
  • 解释程序
    不产生目标程序
  • 编译程序
    产生目标程序,一次编译,反复执行
  1. 汇编程序不同于汇编语言源程序,汇编语言源程序是拿汇编语言写的程序
  2. 解释程序相当于老师口头解释,你就听了一边,不拿笔记记下来,效率较低
  3. 编译程序相当于老师还是口头解释,但你记下来了,那记下来的东西就可以反复看,效率较高

常用程序设计语言

  • FORTRAN
    面向过程
    用于大型数值运算
  • VB
    面向对象
  • JAVA
    面向对象
    适用于 络分布
  • C
    面向过程
  • MATLAB(矩形实验室)
    面向过程
    .

FORTRAN是一种相当古老的语言了,VB以前还有学校学这个,现在也不太常见了。JAVA适用于 络分布环境是因为它一次编写,到处都可以运行。面向对象其实就是更加的面向用户编程了。

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34716 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月22日
下一篇 2022年1月22日

相关推荐