这是一本零基础就能读懂的算法书籍,读者不需要因为自己没有语言基础而畏惧。
书籍的第2章便是一个C语言的入门教程,内容非常易懂,并且十分实用,阅读完这章就可以对本书需要的C语言基础有一个较好的掌握。
本书已经覆盖了大部分基础经典算法,不仅可以作为考研机试和PAT的学习教材,对其他的一些算法考试(例如CCF的CSP考试)或者考研初试的数据结构科目的学习和理解也很有帮助,甚至仅仅想学习经典算法的读者也能从本书中学到许多知识,本书还有配套的《算法笔记上机训练实战指南》本书的作者是同样经历过考研机试和各类算法考试的专家型学长,知晓这类考试中的痛点,以及考生在学习算法时容易产生困惑的地方,因此可以把本书看作是学长为你奉献的满满的经验干货,这是有价值的东西。
本书的试印版本献给了浙大考研学子,并令当年的浙大考研机试平均分增加了十多分,收获了考生的大量好评。
但作者并没有止步于此,经过了半年多时间的内容完善和补充之后,新的版本在新一年的考研机试中再次获得了考生的一致赞美。
最后,在经过精心整理之后,书籍终于定稿,并编撰成书。
我们知道,纸质书籍的一个弱点就在于不能像软件一样随时更新内容,但本书采用了与二维码相结合的方式,使得本书变为能够随时更新内容的书籍,读者也可以随时从二维码中找到勘误。
这种作者和读者能够相互沟通的方式让书籍变“活”了,也能够帮助提升读者对知识的理解。
内容简介本书内容包括:C/C++快速入门、入门模拟、算法初步、数学问题、C++标准模板库(STL)、数据结构专题(二章)、搜索专题、图算法专题、动态规划专题、字符串专题、专题扩展。
本书印有二维码,用来实时更新、补充内容及发布勘误的。
本书可作为计算机专业研究生入学考试复试上机、各类算法等级考试(如PAT、CSP等)的辅导书,也可作为“数据结构”科目的考研教材及辅导书内容的补充。
本书还是学习C语言、数据结构与算法的入门辅导书,非常适合零基础的学习者对经典算法进行学习。
2025/8/9 11:49:13 194.69MB PAT
1
doc格式,60多页吧,几百道题吧,都有答案吧,看好在下!部分:1.求下面函数的返回值(微软)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=9999。
答案:8思路:将x转化为2进制,看含有的1的个数。
2.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。
申明一个引用的时候,切记要对其进行初始化。
引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。
声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。
不能建立数组的引用。
3.将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是一样的。
这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;
而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;
如果传递的是对象,还将调用拷贝构造函数。
因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;
另一方面,在主调函数的调用点处,必须用变量的地址作为实参。
而引用更容易使用,更清晰。
4.在什么时候需要使用“常引用”? 如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。
常引用声明方式:const类型标识符&引用名=目标变量名;
例1inta;constint&ra=a;ra=1;//错误a=1;//正确例2stringfoo();voidbar(string&s);那么下面的表达式将是非法的:bar(foo());bar("helloworld");原因在于foo()和"helloworld"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。
因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。
引用型参数应该在能被定义为const的情况下,尽量定义为const。
5.将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?格式:类型标识符&函数名(形参列表及类型说明){//函数体}好处:在内存中不产生被返回值的副本;
(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。
因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtimeerror!注意事项:(1)不能返回局部变量的引用。
这条可以参照EffectiveC++[1]的Item31。
主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。
(2)不能返回函数内部new分配的内存的引用。
这条可以参照EffectiveC++[1]的Item31。
虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。
例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memoryleak。
(3)可以返回类成员的引用,但最好是const。
这条原则可以参照EffectiveC++[1]的Item30。
主要原因是当对象的属性是与某种业务规则(businessrule)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关,因此有必要将赋值操作封装在一个业务规则当中。
如果其它对象可以获得该属性的非常量引用(或指针),那么对该属性的单纯赋值就
2025/8/9 4:02:35 45KB C C++ 算法 经典
1
基于Labview的串口通讯,本程序没有和单片机相配合,在以后的时间....把相应的单片机程序和仿真放上。
2025/8/8 22:32:56 21KB Labview 串口通信
1
晶闸管相控整流直流电动机调速系统设计晶闸管相控整流直流电动机调速系统设计晶闸管相控整流直流电动机调速系统设计
1
MATLAB仿真高速目标检测-基于keystone变换的微弱目标检测.pdf高速目标检测具有跨距离走动,不易相参积累,而相参积累时间内,目标的距离走动不能超过半个距离单元,对于高距离分辨雷达或观测高速目标的雷达系统,这种限制是很难满足的。
于keystone变换的运动补偿方案,可以在没有目标运动速度信息条件下校正距离走动,从而使积累时间不再受目标运动的限制。
  怎样仿真  在没有用keystone变化和变化后的  雷达回波波形?回波横坐标是:相对距离,纵坐标是幅度;
比如:例如,若雷达发射的信号带宽为150MHz,脉冲重复周期为100μs,发射的脉冲数目为63个,目标的径向速度为1000m/s,则相参积累的时间为613ms,在此期间目标运动了6.3m,跨越了6个距离分辨单元,的  图
2025/8/7 8:47:13 238KB matlab
1
改良之后的SIFT算法的Matlab代码,readme文件中参数解释详细,匹配准确度相较于原算法更高,适合初学者学习参考。
2025/8/6 19:52:02 2.75MB SIFT Matlab 改良
1
雷达信号和通信信号相加之后的幅度变化,导致饱和功率放大器的输出产生交调失真,影响一体化信号的性能。
本文研究了一种基于CORDIC算法的幅相转换技术,不仅消除了功放的非线性影响,而且易于工程实现。
仿真结果表明幅相转换后的信号经过功率放大器之后能恢复成原来的信号,证明了此方法的可行性。
1
直线阵的多波束形成利用相移补偿的原理但是会出现方位模糊的问题(所有的直线阵都会有这个问题)
2025/8/3 13:02:55 861B 直线阵 补偿法 多波束
1
目录录录第1章计算机基础知识 11.1计算机概论 11.1.1计算机的发展概况 11.1.2计算机的特点 21.1.3计算机的应用 21.2计算机常用的数制及编码 41.2.1二进制数 41.2.2二进制与其它数制 51.2.3不同进制数之间的转换 61.2.4二进制数在计算机内的表示 81.2.5常见的信息编码 91.3计算机系统的组成 111.3.1计算机系统 111.3.2计算机的基本结构 111.3.3微型计算机中的硬件资源 131.3.4基本输入输出设备 171.3.5微型计算机的软件配置 191.4多媒体计算机 221.4.1多媒体的基本概念 221.4.2多媒体计算机系统 221.4.3多媒体技术的应用 231.5计算机病毒简介及其防治 231.5.1计算机病毒的定义、特征及危害 231.5.2计算机病毒的结构与分类 241.5.3计算机病毒的预防 251.5.4常用杀毒软件简介 261.6计算机产业及主要产品介绍 271.6.1计算机产业的兴起和发展 271.6.2微型计算机的出现和巨大成功 271.6.3国际知名计算机产业公司及其产品简介 291.6.4国内主要计算机产业公司简介 32习题 33第2章中文Windows98 352.1概述 352.1.1发展历史 352.1.2特点 352.1.3运行环境和安装 362.1.4启动和退出 382.2Windows98的基本知识和基本操作 382.2.1桌面简介 382.2.2启动和退出应用程序 392.2.3鼠标的使用 402.2.4窗口和对话框 412.2.5菜单和工具栏 422.2.6剪贴板 432.2.7帮助系统 442.3MS-DOS方式 452.3.1DOS基础 452.3.2MS-DOS方式 482.4Windows98资源管理器 482.4.1文件和文件夹 482.4.2“资源管理器”窗口 492.4.3管理文件和文件夹 502.4.4“回收站”的使用 532.4.5快捷方式 542.4.6文件和应用程序相关联 552.5Windows98控制面板 552.5.1显示属性的调整 562.5.2添加新硬件 582.5.3系统 602.5.4打印机 612.5.5安装和删除应用程序 622.6中文操作处理 642.6.1打开和关闭汉字输入法 642.6.2操作说明 642.6.3输入法简介 652.6.4输入法设置 652.7多媒体 662.7.1Windows98的多媒体特性 662.7.2多媒体附件程序 672.7.3多媒体属性设置 682.7.4配置Windows98声音方案 712.8磁盘管理 712.8.1磁盘格式化 722.8.2软盘复制 732.8.3浏览和改变磁盘的设置 732.9画图程序 742.9.1启动“画图”程序 742.9.2“画图”程序功能简介 742.9.3创建图片 75习题 75第3章字处理软件Word2000 773.1Word概述 783.1.1功能 783.1.2启动与退出 793.1.3窗口的组成 813.2文档的基本操作 843.2.1创建一个新文档 843.2.2保存文档 853.2.3打开文档 863.2.4文本输入和基本编辑 863.3文档的排版 933.3.1视图 933.3.2字符排版 933.3.3段落的格式化 963.3.4页面排版 993.4表格 1033.4.1建立表格 1033.4.2编辑表格 1043.4.3表格属性设置 1063.4.4转换表格和文本 1103.5图片编辑 1113.5.1剪贴画 1113.5.2插入艺术字 1133.5.3绘制图形 1133.6打印预览及打印 1153.6.1打印预览 1153.6.2打印 116习题
2025/8/2 20:34:38 11.39MB 计算机 基础 教程 pdf
1
用于Abaqus二维晶粒建模。
相比较Python脚本,改文件已经封装为插件,使用更加方便快捷!
2025/8/2 20:51:26 49KB Abaqus Voronoi 二次开发
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡