计算机导论2--语言与算法
来源:互联网 发布:詹姆斯总决赛数据科比 编辑:程序博客网 时间:2024/06/06 08:56
计算机专业导论之语言与算法
第1讲(总第5讲)由机器语言到高级语言
1(5)01 本讲概述
1(5)02 由机器语言到高级语言
指令系统:cpu用二进制和编码提供的可以解释并执行的命令的集合。
机器语言:用二进制和编码方式提供的指令系统所编写程序的语言被称为机器语言。
汇编语言:用助记符号编写程序的语言。
汇编语言源程序:用汇编语言编写出的程序。
汇编程序:是将汇编语言源程序翻译成机器语言程序的程序。
高级语言:用类似自然语言的语句编写程序的语言。
高级语言源程序:用高级语言编写的程序。
编译程序:将高级语言源程序翻译成汇编语言或者机器语言程序的程序。
自然/社会问题通过计算化得到算法。
算法通过程序化得到高级语言程序。
高级语言程序通过编译得到汇编语言程序。
汇编语言程序通过汇编得到机器语言程序。
机器语言程序通过01化得到01编码存储到存储器中。
1(5)03 高级语言的基本构成要素
常量,变量,表达式,赋值语句,顺序结构,分支结构,循环结构。
其中表达式分为:算数表达式,比较表达式,逻辑表达式。
1(5)04 用高级语言构造程序
函数,递归,迭代。构造的思想:由粗到细,由细到粗。
1(5)05 计算机语言与编译器
高级语言转化为编译语言的思想:
- 例子:Res = 10 + 10 ; 通过词法分析得到运算符和常量和变量。
- 通过语句模式的识别,识别出是那种模式。
- 通过图灵机判断语句算法是否可以正确运算。
- 通过树状图将语句分解成基本语句模式。
- 通过映射将基本语句编程会变语句。
- 进行汇编语句的组装和次序的调整。
1(5)06 计算机语言的发展
机器语言—-汇编语言—-高级语言—–语言积木块—-更大的积木块。
第2讲(总第6讲) 程序与递归:组合-抽象-重复-构造
2(6)01 本讲概述
2(6)02 程序的作用和本质
2(6)03 运算式的组合-抽象与构造
2(6)04 递归与迭代
2(6)05运用递归与迭代
第3讲(总第7讲) 算法-程序与计算系统之灵魂
3(7)01 本讲概述
tsp问题。
假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
问题提出–数学建模–算法策略–数据结构,控制结构–程序设计–问题的求解。
3(7)02 算法与算法类问题求解
算法:有穷性,确定性,输入,输出,能行性。
问题提出–数学建模–算法策略–数据结构,控制结构–算法的实现–算法的分析(正确性,复杂性,能行性)。
3(7)03 数学建模与算法策略设计
数学建模:用数学语言描述实际现象的过程。
算法策略设计:tsp问题可以用遍历算法解决,但是会导致组合爆炸,20个城市计算机每秒检索1000万条需要386年。综合考虑我们可以选择贪心算法。
3(7)04 算法的数据结构设计
什么是数据结构:拿c语言来说,变量名存放的是变量的值,在存储器当中,存储地址对应的存储的是变量的值,那么变量名就相当于存储地址。
指针变量的变量名存放的是地址值,指向指针指向的变量。
树结构:数据结构可以有多种,一种是一个数据值记录他的值和他的父节点。另一种是一个数据记录他的值和他的左子节点和右子节点。针对这两种结构要知道怎样添加节点。
3(7)05 算法的控制结构设计
顺序结构、分支结构、循环结构
3(7)06 算法实现与程序设计
公共函数库是编译好了的程序。所以写代码最好用原生函数。
3(7)07 算法分析与计算复杂性
算法的效率:时间复杂性和空间复杂性。
当算法的时间复杂性量级为多项式函数时,计算机是能够完成计算的
当算法的时间复杂性量级为非多项式函数时,如指数函数、阶乘函数时,对于大规模问题,计算机是不能够完成计算的
第4讲(总第8讲)怎样研究算法-遗传算法研究示例
4(8)01 本讲概述(含教学课件PDF)
学会算法的研究。
4(8)02 可求解与难求解问题
P:多项式问题,就是能在多项式时间内解决的问题,
NP:非确定性多项式,就是能在多项式时间验证答案正确与否的问题。
NP-hard:比所有的NP问题都难的问题
NP-complete:完全非确定性多项式,满足两点:
- 是NP hard的问题
是NP问题
- P类问题是计算机可以在有限时间内能够求解的问题
- B.NP类问题是计算机可以在有限时间内能够验证“解”的正确性的问题
- C.NPC类问题是对问题的每一个可能解,计算机都可以在有限时间内验证“解”的正确性的问题,被称为NP完全问题
4(8)03 遗传算法的源起-生物学中的遗传算法
4(8)04 计算学科的遗传算法
种群–解集
个体–解
染色体–编码解
基因–基因
适应度–适应度
选择–选择
复制–复制
交配/杂交–交叉
突变–变异
4(8)05 遗传算法为什么可以求解NPC问题
- 穷举法(遍历法)—精确解。
- 随机搜索法—近似解
- 导向性随机搜索法
- 导向性群体随机搜索法
遗传法使用条件
- 对于np问题,当没有更好的算法时候,可以选择遗传算法。
- 已知解空间
- 关于可能解的适应度函数的计算方法
4(8)06 怎样用遗传算法求解应用问题
4(8)07 怎样研究算法暨遗传算法的总结
- 计算机导论2--语言与算法
- 计算机算法(c++) 导论
- 《计算导论与C语言基础》第4周编程作业: 感性接触计算机程序
- [计算机导论思维与系统(一)]
- 计算机导论3--学科与专业
- 计算机导论-符号化,计算化与自动化
- 计算机组成与体系结构-第一章导论
- 【计算机导论】程序规划与设计
- 算法导论(Introduction to Algorithms)之算法入门(插入排序与合并排序C语言实现)
- 算法导论C语言实现: 算法基础
- 计算机导论
- [算法导论] BF算法与KMP算法
- 基础知识 '算法在计算机中的作用' --《算法导论》笔记
- 编程语言与计算机
- 算法导论 2-2
- 算法导论学习2
- 算法导论 24-2
- 算法导论 5.1-2
- aliyun阿里云Maven仓库镜像地址
- 拓扑排序学习笔记-Java
- elasticsearch使用river同步mysql数据
- 封装一个函数afterDate(date,n),得到日期date的n天后的日期
- Ubuntu 14.04下Redis安装报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
- 计算机导论2--语言与算法
- READING NOTE: Weakly Supervised Cascaded Convolutional Networks
- 堆排序
- 未越狱iPhone访问限制密码忘了怎么办
- maven打包pom文件在windows和linux下的格式差异
- C#63课的主要内容
- 关于矩阵最通俗的解释
- C++ Primer课后练习 9-46
- JAVA小问题(持续更新)