c语言常用算法pdf,妙趣横生的算法(C语言实现 第2版) 带目录完整pdf[94MB]-程序员宅基地

技术标签: c语言常用算法pdf  

《妙趣横生的算法(C语言实现 第2版)》是深受广大读者好评的《妙趣横生的算法(C语言实现)》一书的全新升级版。本书在第1版的基础上对原书内容做了大量的调整和补充,并将书中的实例代码在Visual Studio 2010环境下重新编译通过,以适应当前技术的发展和阅读需求。本书内容涵盖了算法入门的必备基础知识和大量的趣味算法题、面试题和ACM竞赛题等。通过学习本书内容,可以开阔读者的视野,帮助读者理解算法,提高编程兴趣和能力,并提高C语言编程能力,还可以让读者了解IT面试中的常见算法题及编程竞赛中的相关知识。另外,本书提供了5.5小时配套教学视频和实例源代码,以提高读者的学习效率。

本书共11章,分2篇。第1篇为算法基础,包括数据结构基础知识、常用的查找与排序方法、常用的算法思想等。第2篇为常用算法实例解析,包括20个编程基本功趣题、39个数学趣题、14个数据结构趣题、7个数值计算趣题、6个综合题、61个算法设计与数据结构面试题、4个ACM程序设计竞赛 题目。

本书适合学习算法的人员作为入门教程,也适合有C语言基础的人作为编程实践读物,还可作为有编程经验的程序员查阅相关算法实现和数据结构知识的参考书。另外,本书也可以为那些准备参加IT面试和信息学竞赛的读者提供有益的帮助。

目录

第1篇 算法基础

第1章 数据结构基础

1.1 什么是数据结构

1.2 顺序表

1.2.1 顺序表的定义

1.2.2 向顺序表中插入元素

1.2.3 从顺序表中删除元素

1.2.4 实例与分析

1.3 链表

1.3.1 创建一个链表

1.3.2 向链表中插入结点

1.3.3 从链表中删除结点

1.3.4 销毁一个链表

1.3.5 实例与分析

1.4 栈

1.4.1 栈的定义

1.4.2 创建一个栈

1.4.3 入栈操作

1.4.4 出栈操作

1.4.5 栈的其他操作

1.4.6 实例与分析

1.5 队列

1.5.1 队列的定义

1.5.2 创建一个队列

1.5.3 入队列操作

1.5.4 出队列操作

1.5.5 销毁一个队列

1.5.6 循环队列的概念

1.5.7 循环队列的实现

1.5.8 实例与分析

1.6 树结构

1.6.1 树的概念

1.6.2 树结构的计算机存储形式

1.6.3 二叉树的定义

1.6.4 二叉树的遍历

1.6.5 创建二叉树

1.6.6 实例与分析

1.7 图结构

1.7.1 图的概念

1.7.2 图的存储形式

1.7.3 邻接表的定义

1.7.4 图的创建

1.7.5 图的遍历(1)——深度优先搜索

1.7.6 图的遍历(2)——广度优先搜索

1.7.7 实例与分析

1.8 章后习题

第2章 常用的查找与排序方法

2.1 顺序查找

2.2 折半查找

2.3 排序的概述

2.4 直接插入排序

2.5 选择排序

2.6 冒泡排序

2.7 希尔排序

2.8 快速排序

2.9 堆排序

2.10 各种排序算法性能比较

2.11 章后习题

第3章 常用的算法思想

3.1 什么是算法

3.2 算法的分类表示及测评

3.2.1 算法的分类

3.2.2 算法的表示

3.2.3 算法性能的测评

3.3 穷举法思想

3.3.1 基本概念

3.3.2 寻找给定区间的素数

3.3.3 TOM的借书方案

3.4 递归与分治思想

3.4.1 基本概念

3.4.2 计算整数的划分数

3.4.3 递归的折半查找算法

3.5 贪心算法思想

3.5.1 基本概念

3.5.2 最优装船问题

3.6 回溯法

3.6.1 基本概念

3.6.2 四皇后问题求解

3.7 数值概率算法

3.7.1 基本概念

3.7.2 计算定积分

3.8 章后习题

第2篇 常用算法实例解析

第4章 编程基本功

4.1 字符类型统计器

4.2 计算字符的ASCII码

4.3 嵌套if-else语句的妙用

4.4 基于switch语句的译码器

4.5 判断闰年

4.6 指针变量作参数

4.7 矩阵的转置运算

4.8 矩阵的乘法运算

4.9 巧用位运算

4.10 文件的读写

4.11 计算文件的大小

4.12 记录程序的运行时间

4.13 十进制/二进制转化器

4.14 打印特殊图案

4.15 打印杨辉三角

4.16 复杂级数的前n项和

4.17 寻找矩阵中的“鞍点”

4.18 n阶勒让德多项式求解

4.19 递归反向输出字符串

4.20 一年中的第几天

第5章 数学趣题(一)

5.1 舍罕王的失算

5.2 求两个数的最大公约数和最小公倍数

5.3 歌德巴赫猜想的近似证明

5.4 三色球问题

5.5 百钱买百鸡问题

5.6 判断回文数字

5.7 填数字游戏求解

5.8 新郎和新娘

5.9 爱因斯坦的阶梯问题

5.10 寻找水仙花数

5.11 猴子吃桃问题

5.12 兔子产仔问题

5.13 分解质因数

5.14 常胜将军

5.15 求π的近似值

5.16 魔幻方阵

5.17 移数字游戏

5.18 数字的全排列

5.19 完全数

5.20 亲密数

5.21 数字翻译器

5.22 递归实现数制转换

5.23 谁在说谎

第6章 数学趣题(二)

6.1 连续整数固定和问题

6.2 表示成两个数的平方和

6.3 具有特殊性质的数

6.4 验证角谷猜想

6.5 验证四方定理

6.6 递归法寻找最小值

6.7 寻找同构数

6.8 验证尼科彻斯定理

6.9 三重回文数字

6.10 马克思手稿中的数学题

6.11 渔夫捕鱼问题

6.12 寻找假币

6.13 计算组合数

6.14 递归法求幂

6.15 汉诺塔

6.16 选美比赛

第7章 数据结构趣题

7.1 顺序表的就地逆置

7.2 动态数列排序

7.3 在原表空间进行链表的归并

7.4 约瑟夫环

7.5 二进制/八进制转换器

7.6 回文字符串的判定

7.7 括号匹配

7.8 魔王语言翻译

7.9 动态双向链表的应用

7.10 判断完全二叉树

7.11 动画模拟创建二叉树

7.12 打印符号三角形

7.13 递归函数的非递归求解

7.14 任意长度整数加法

第8章 数值计算问题

8.1 递推化梯形法求解定积分

8.2 求解低阶定积分

8.3 迭代法开平方运算

8.4 牛顿法解方程

8.5 欧拉方法求解微分方程

8.6 改进的欧拉方法求解微分方程

8.7 雅可比迭代公式求解线性方程组

第9章 综合题

9.1 破碎的砝码

9.2 计算24的问题

9.3 马踏棋盘

9.4 0-1背包问题

9.5 八皇后问题求解

9.6 简易文件加密/解密系统

第10章 算法设计与数据结构面试题精粹

10.1 常见的算法设计题

10.2 常见的数据结构题

第11章 ACM程序设计竞赛题目选讲

11.1 奥斯卡奖章

11.2 准备就绪?

11.3 兔子

11.4 阶乘之和

e8c1d9c0fa54e86a17b527bbb97aa25f.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34438187/article/details/117072596

智能推荐

linux里面ping www.baidu.com ping不通的问题_linux桥接ping不通baidu-程序员宅基地

文章浏览阅读3.2w次,点赞16次,收藏90次。对于这个问题我也是从网上找了很久,终于解决了这个问题。首先遇到这个问题,应该确认虚拟机能不能正常的上网,就需要ping 网关,如果能ping通说明能正常上网,不过首先要用命令route -n来查看自己的网关,如下图:第一行就是默认网关。现在用命令ping 192.168.1.1来看一下结果:然后可以看一下电脑上面百度的ip是多少可以在linux里面ping 这个IP,结果如下:..._linux桥接ping不通baidu

android 横幅弹出权限,有关 android studio notification 横幅弹出的功能没有反应-程序员宅基地

文章浏览阅读512次。小妹在这里已经卡了2-3天了,研究了很多人的文章,除了低版本api 17有成功外,其他的不是channel null 就是没反应 (channel null已解决)拜托各位大大,帮小妹一下,以下是我的程式跟 gradle, 我在这里卡好久又没有人可问(哭)![image](/img/bVcL0Qo)public class MainActivity extends AppCompatActivit..._android 权限申请弹窗 横屏

CNN中padding参数分类_cnn “相同填充”(same padding)-程序员宅基地

文章浏览阅读1.4k次,点赞4次,收藏6次。valid padding(有效填充):完全不使用填充。half/same padding(半填充/相同填充):保证输入和输出的feature map尺寸相同。full padding(全填充):在卷积操作过程中,每个像素在每个方向上被访问的次数相同。arbitrary padding(任意填充):人为设定填充。..._cnn “相同填充”(same padding)

Maven的基础知识,java技术栈-程序员宅基地

文章浏览阅读790次,点赞29次,收藏28次。手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长![外链图片转存中…(img-Qpoc4gOu-1712656009273)][外链图片转存中…(img-bSWbNeGN-1712656009274)]

getFullYear()和getYear()有什么区别_getyear和getfullyear-程序员宅基地

文章浏览阅读469次。Date对象取得年份有getYear和getFullYear两种方法经 测试var d=new Date;alert(d.getYear())在IE中返回 2009,在Firefox中会返回109。经查询手册,getYear在Firefox下返回的是距1900年1月1日的年份,这是一个过时而不被推荐的方法。而alert(d.getFullYear())在IE和FF中都会返回2009。因此,无论何时都应使用getFullYear来替代getYear方法。例如:2016年用 getFullYea_getyear和getfullyear

Unix传奇 (上篇)_unix传奇pdf-程序员宅基地

文章浏览阅读182次。Unix传奇(上篇) 陈皓 了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道我们明天该如何去规划,该如何去走。在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今。要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 —— 认认真真地了解和回顾历史。 Unix是目前还在存活的操作系_unix传奇pdf

随便推点

ACwing 哈希算法入门:_ac算法 哈希-程序员宅基地

文章浏览阅读308次。哈希算法:将字符串映射为数字形式,十分巧妙,一般运用为进制数,进制据前人经验,一般为131,1331时重复率很低,由于字符串的数字和会很大,所以一般为了方便,一般定义为unsigned long long,爆掉时,即为对 2^64 取模,可以对于任意子序列的值进行映射为数字进而进行判断入门题目链接:AC代码:#include<bits/stdc++.h>using na..._ac算法 哈希

VS配置Qt和MySQL_在vs中 如何装qt5sqlmysql模块-程序员宅基地

文章浏览阅读952次,点赞13次,收藏27次。由于觉得Qt的编辑界面比较丑,所以想用vs2022的编辑器写Qt加MySQL的项目。_在vs中 如何装qt5sqlmysql模块

【渝粤题库】广东开放大学 互联网营销 形成性考核_画中画广告之所以能有较高的点击率,主要由于它具有以下特点-程序员宅基地

文章浏览阅读1k次。选择题题目:下面的哪个调研内容属于经济环境调研?()题目:()的目的就是加强与客户的沟通,它是是网络媒体也是网络营销的最重要特性。题目:4Ps策略中4P是指产品、价格、顾客和促销。题目:网络市场调研是目前最为先进的市场调研手段,没有任何的缺点或不足之处。题目:市场定位的基本参数有题目:市场需求调研可以掌握()等信息。题目:在开展企业网站建设时应做好以下哪几个工作。()题目:对企业网站首页的优化中,一定要注意下面哪几个方面的优化。()题目:()的主要作用是增进顾客关系,提供顾客服务,提升企业_画中画广告之所以能有较高的点击率,主要由于它具有以下特点

爬虫学习(1):urlopen库使用_urlopen the read operation timed out-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏5次。以爬取CSDN为例子:第一步:导入请求库第二步:打开请求网址第三步:打印源码import urllib.requestresponse=urllib.request.urlopen("https://www.csdn.net/?spm=1011.2124.3001.5359")print(response.read().decode('utf-8'))结果大概就是这个样子:好的,继续,看看打印的是什么类型的:import urllib.requestresponse=urllib.r_urlopen the read operation timed out

分享读取各大主流邮箱通讯录(联系人)、MSN好友列表的的功能【升级版(3.0)】-程序员宅基地

文章浏览阅读304次。修正sina.com/sina.cn邮箱获取不到联系人,并精简修改了其他邮箱代码,以下就是升级版版本的介绍:完整版本,整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、 live(Y)、tom(Y)、yahoo(Y)(有点慢)、 sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以发送邮件(完..._通讯录 应用读取 邮件 的相关

云计算及虚拟化教程_云计算与虚拟化技术 教改-程序员宅基地

文章浏览阅读213次。云计算及虚拟化教程学习云计算、虚拟化和计算机网络的基本概念。此视频教程共2.0小时,中英双语字幕,画质清晰无水印,源码附件全课程英文名:Cloud Computing and Virtualization An Introduction百度网盘地址:https://pan.baidu.com/s/1lrak60XOGEqMOI6lXYf6TQ?pwd=ns0j课程介绍:https://www.aihorizon.cn/72云计算:概念、定义、云类型和服务部署模型。虚拟化的概念使用 Type-2 Hyperv_云计算与虚拟化技术 教改