算法竞赛-入门经典-作者刘汝佳.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法竞赛入门经典 目录 目录 110 第1章 程序设计入门 112 1.1 算术表达式 112 1.2 变量及其输入 114 1.3 顺序结构程序设计 117 1.4 分支结构程序设计 120 1.5 小结与习题 123 1.5.1 数据类型实验 123 1.5.2 scanf输入格式实验 123 1.5.3 printf语句输出实验 123 1.5.4 测测你的实践能力 123 1.5.5 小结 124 1.5.6 上机练习 124 第2章 循环结构程序设计 110 2.1 for循环 110 2.2循环结构程序设计 113 2.3 文件操作 116 2.4 小结与习题 119 2.4.1输出技巧 119 2.4.2浮点数陷阱 120 2.4.3 64位整数 120 2.4.4 C++中的输入输出 120 2.4.5小结 121 2.4.6 上机练习 122 第4章 函数和递归 110 4.1 数学函数 110 4.1.1 简单函数的编写 110 4.1.2 使用结构体的函数 111 4.1.3应用举例 111 4.2 地址和指针 114 4.2.1 变量交换 114 4.2.2 调用栈 115 4.2.3 用指针实现变量交换 117 4.2.4初学者易犯的错误 118 4.3 递 归 119 4.3.1 递归定义 119 4.3.2递归函数 120 4.3.3 C语言对递归的支持 120 4.3.4 段错误与栈溢出 122 4.4 本章小结 123 4.4.1 小问题集锦 123 4.4.2小结 124 第6章 数据结构基础 1 6.1 栈和队列 1 6.1.1 卡片游戏 1 6.1.2铁轨 2 6.2 链 表 4 6.2.1 初步分析 4 6.2.2链式结构 6 6.2.3对比测试 7 6.2.4随机数发生器 8 6.3 二叉树 9 6.3.1 小球下落 9 6.3.2层次遍历 10 6.3.3 二叉树重建 14 6.4 图 15 6.4.2走迷宫 16 6.4.3拓扑排序 18 6.4.4欧拉回路 18 6.5训练参考 19 第8章 高效算法设计 1 8.1 算法分析初步 1 8.1.1 渐进时间复杂度 1 8.1.2上界分析 2 第1部分 语 言 篇 第1章 程序设计入门 学习目标 熟悉C语言程序的编译和运行 学会编程计算并输出常见的算术表达式的结果 掌握整数和浮点数的含义和输出方法 掌握数学函数的使用方法 初步了解变量的含义 掌握整数和浮点数变量的声明方法 掌握整数和浮点数变量的读入方法 掌握变量交换的三变量法 理解算法竞赛中的程序三步曲:输入、计算、输出 记住算法竞赛的目标及其对程序的要求 计算机速度快,很适合做计算和逻辑判断工作。本章首先介绍顺序结构程序设计,其基本思路是:把需要计算机完成的工作分成若干个步骤,然后依次让计算机执行。注意这里的“依次”二字——步骤之间是有先后顺序的。这部分的重点在于计算。 接下来介绍分支结构程序设计,用到了逻辑判断,根据不同情况执行不同语句。本章内容不复杂,但是不容忽视。 注意:编程不是看会的,也不是听会的,而是练会的,所以应尽量在计算机旁阅读 本书,以便把书中的程序输入到计算机中进行调试,顺便再做做上机练习。千万不要图 快——如果没有足够的时间用来实践,那么学得快,忘得也快。 1.1 算术表达式 计算机的“本职”工作是计算,因此下面先从算术运算入手,看看如何用计算机进行复杂的计算。 程序1-1 计算并输出1+2的值 #includestdio.h int main() { printf(%d\n, 1+2); return 0; } 这是一段简单的程序,用于计算1+2的值,并把结果输出到屏幕。如果你不知道如何编译并运行这段程序,可阅读附录或向指导教师求助。 即使你不明白上述程序除了“1+2”之外的其他内容,仍然可以进行以下探索:试着把“1+2”改成其他东西,而不要去修改那些并不明白的代码——它们看上去工作情况良好。 下面让我们做4个实验: 实验1:修改程序1-1,输出3-4的结果 实验2:修改程序1-1,输出5×6的结果 实验3:修改程序1-1,输出8÷4的结果 实验4:修改程序1-1,输出8÷5的结果 直接把“1+2”替换成“3+4”即可顺利解决实验1,但读者很快就会发现:无法在键盘上找到乘号和除号。解决方法是:用星号“*”代替乘号,而用正斜线“/”代替除号。这样,4个实验都顺利完成了。 等一下!实验4的输出结果居然是1,而不是正确答案1.6。这是怎么回事?计算机出问题了吗?计算机没有出问题,问题出在程序上:这段程序的实际含义并非和我们所想的一致。 在C语言中,8/5的确切含义是8除以5所得商值的整数部

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档