第9章贪心法
9.1.1 装船问题
价值和重量的比值“价 重比”
0-1背包问题
9.1.2 事件序列问题
9.1.3 一般步骤
问题范围缩小,结果合并
初始解出发
局部最优策略
小节:局部最优不能保障全局最优
第9章贪心法
9.1.1 装船问题
价值和重量的比值“价 重比”
0-1背包问题
9.1.2 事件序列问题
9.1.3 一般步骤
问题范围缩小,结果合并
初始解出发
局部最优策略
小节:局部最优不能保障全局最优
cout <<输出流对象
cin>>输入流对象
程序编辑时需注意输入法半角、全角的切换
程序说明:
1.以符合“#”开头的行,称为编译预处理行。
2.“#include”称为文件预处理命令。
3.“#include <iostream>”这条命令是让文件“iostream”的内容包含到新建的程序中去。
4.iostream是C++系统定义的一个“头文件",在这个头文件中设置了C++的输入/输出(I/O)相关环境,定义了输入流cin和输出流cout对象。
5.“#include<cmach”这条命令是让系统中已经有的常用的数学函数包含到新建的程序中去。有了它才能使用正弦、余弦函数的公式。
6.using namespace称为使用名字空间命令,是为避免同名冲突而引入的,std是C++自带的一个名字空间,由它定义了C++的库标识符,比如couture等。有了using namespace std这句话,程序就可以直接使用std里面的标识符了。
7.main()是每一个C++程序都必须有的,称为主函数。可以把它看成是程序的入口。在main()前面的int是标准的C++所提倡的,这样做,需要在主函数结束前增加一行代码:return 0
在C++中引入术语stream(流),指的是来自设备或传给设备的一个数据流。
cout表示输出流对象,它是输入输出流库的一部分。与cout相关联的设备是显示器。在程序中有了关联字cout,就有了将数据流传送到显示器的条件,用插入操作符“<<”将其后的数据插入到该流中去.
cin表示输入流对象,它也是输入输出流库的一部分,与cin相关联的输入设备是键盘。当从键盘输入字符串时,形成了输入流(数据流),用提取操作符>>将数据流存储到一个事先定义好的变量中。
链表属于动态数据结构,可以类比成一环接一环的链条。
程序设计的重要性
程序设计的基本概念与基本方法
编程解题的思路与典型方法
数学模型简介
算法与算法步骤
程序结构与相应语句
编码与上机调试
学至第十
程序设计的重要性
在C++的语言环境下,学会如何针对问题进行分析,构建数学模型,寻找算法并编程实现
基本数据类型:
1.整型。即整数类型,它又可分为4种
1)int 整形,占用2字节,表示数的范围-32768~2768.
2)unsigned int 无符号整型,占用2字节,数的标识范围:0~65535
3)long int 长整型,占用4个字节,数的表示范围:-2147483648~2147483647
4)unsigned long int 无符号长整型,占用4字节,数的表示范围:0~4294967295
2.实型。即实数类型,它又可以分为3种
1)float 浮点型,占用4字节,有效位数位7位。
2)double 双精度类型,占用8字节,有效位15位
3)long double 长双精度型,占用16字节,数的有效位数19位。
3.逻辑型
占用1字节,例如:0和1;True和False; Y和N
4.字符型
占用1字节 ,如:“C”、‘1’
程序说明是以C++的注释形式出现的,注释以两种形成出现:
“//” 引导单行注释
“/*...... */”引导多行注释
在读程序时,首先要看程序说明,编程时要写出如下格式:
1.程序名称
2.作者名称
3.编制时间,修改时间
4.程序的主要功能
没有说明的程序是不合格的程序、
预编译命令开头:#include<iostream>
主函数是以main()为标识的,是每一个程序都必须有的标识。main()所起的作用仅是执行一系列的操作
主函数main()的函数体是由一对大括号{}括起,函数体包函两部分:前面是声明函数,后面是执行部分。
8.2.2 快速排序
用递归法解决数字旋转方阵和下楼问题
理解思路思想,代码重写,上机操作!
程序框图
NS流程图
逻辑运算符与逻辑表达式
逻辑与 &&
逻辑或 | |
逻辑非 !
第17讲
删除链表
删除操作不应破坏原链接关系
delete 释放内存空间
链表为空,直接返回
上一个节点链接链接到下一个节点
p next->q next
6.3.3 循环链表
头指针head和尾指针tail定义为全局变量
通用、共享 所有被调函数均可使用
i未做说明,程序
.。。。。。。。。。。。。。。。。。。。。。。。。
.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
各种数据所能表示的数据精度不同,因而他所占用的内存空间大小不同。
指针是一种特殊的变量,特殊性表现在类型和值上。
6.3.1 建立链表的过程
三个步骤
定义 结构 数据域和指针域
指向结构的指针
6.3.2 插入与删除
不应破坏原有链接关系
插入该在的位置
传值调用与传引用调用
phead r q pNode
递归函数是可以直接调用自己或通过别的函数间接调用自己的函数。从死路上,递归甘薯将问题分为两个概念性部分A和B,其中A是能够处理的部分;B是暂时还不能处理的部分,一次一次地调用,规模缩小,指至降到最低,达到递归边界,从而得到解答。