自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 算法设计与分析课程学习-第四章 贪心算法

贪心算法的基本概念 "首先需要强调的是,01背包问题的前提是每件物品都只有两种状态:被选和没有被选.并不能将一件物品的一部分装入背包.这正是01背包中01的意义.如果可以将一件物品的一部分装入背包,那么完全可以采用比动态规划更简单的思路:通过每件物品的价值/重量求出每件物品的价值密度(我自己编的名词).然后从高到低取物品即可.这种思路就是一种简单的贪心算法思路.因为01背包题目中的物品只能取或者不取,所以在其容量与物品重量有较大冲突时,用简单的贪心算法并不能得到正确的结果." ...

2021-11-08 21:03:02 728 2

原创 算法设计与分析课程学习-第三章 动态规划

动态规划的基本概念 动态规划的本质是通过对中间结果的记录实现用空间节省大量时间.有些问题可以被分解为类似的小问题,但是由于存在需要统筹全局的条件等原因没有办法简单地合并得到最终结果,或者会消耗大量的时间,此时就可以考虑动态规划. 可以用动态规划思路解决的问题往往存在一个状态转移方程,来描述从局部得到整体结果的过程.只要能得到正确的转移方程,动态规划的题目也就很简单了,但往往它并不容易得到. 动态规划的思路抽象,灵活度高,没有固定的解题套路,所以历来是学习...

2021-10-30 20:54:50 388 2

原创 算法设计与分析课程学习-第二章:递归与分治策略

由于笔者的这门课突然宣布从考查课成为了考试课,并且老师的讲课水平一般,所以我打算通过写博客的方式自学这本书.虽然笔者有一定算法设计基础,但是这门课所使用的教材的编写方式与我之前学习的常规方式有一定区别,并且晦涩难懂(在我主观上).我打算以书中的例题为基础,以我自己能理解的方式对书中的算法进行阐述.由于精力有限,我只能抽时间去更新STL源码分析的内容. 闲话少说,今天开始这本书的第二章:递归与分治策略.递归的基本概念 直接或间接调用自己的算法称为递归算法...

2021-10-22 21:11:36 357

原创 C++ STL Queue,Stack底层实现分析

C++容器适配器(Adapter) stack与queue是非常常用的STL容器.队列与栈也是比较基础的数据结构类型.今天我们来实现一个stack与一个queue.基本结构 stack也就是栈,遵循的是先进后出原则.queue也就是队列,遵循的是先进先出的原则. 作为基本数据结构的队列与栈没有什么难点. 此外,stack与queue不能遍历,不能随机访问,不能查询中间结点,不能插入中间结点,只能做与其性质对应的两端结点的操作. STL...

2021-10-17 11:24:48 1986 2

原创 C++ STL String底层实现分析

STL String是最重要,最常用的STL之一,能够大大降低我们处理字符串的工作量。今天我们来自己写一个MyString,在编码中理解它的工作原理。基本结构 从一个容器的角度讲,string的结构并不复杂,本质上还是一个顺序表。如图可以生动展示一个string所占用的空间。其中_size表示当前已经使用的空间,_capacity表示最大容量。特别需要注意的是,string的字符串结尾会固定存放一个'/0'来表示字符串结尾。在实践中我发现在不主动调用reserve()方...

2021-10-10 16:25:18 2071 4

原创 C++ STL Vector底层实现分析

这次我们来分析STL Vector的实现原理。上次对List的分析并不成功,因为直接阅读源码要理解大量繁琐的STL规定的协议或模式,很影响对代码本身的阅读。所以这次我打算直接抛弃那些内容,直接用更简洁更直观的方式编写一个vector。这样虽然没有STL源码那样规范与标准,其结构的精髓也可以得到很好的理解。基本结构 相比于List,vector是一个简单的顺序表结构。如图可以生动地展示一个vector所占用的存储空间。其中蓝色的部分代表已经赋值的部分。在values指针所...

2021-10-01 15:34:23 354

原创 Mybatis映射文件学习总结

学校里的专业课学习Mybatis已经三周了,其中的一周半都在学习映射文件.Anna老师的教学非常认真负责,但由于映射的内容多且杂,课上敲代码速度过快,内容枯燥无聊等原因(茴字有几种写法的感觉),已经学麻了...今天趁空闲时间,我决定对映射的方式进行整理总结....

2021-09-23 16:52:31 629 2

原创 C++ STL list 源码分析

阅读了很多大厂招聘的面经,发现越是受欢迎的企业,越重视程序员对代码底层实现的考察.所以我决定从C++ STL内置容器开始,逐个分析其底层实现逻辑和源码,从而对编程有更为深刻的认识.之前的每次阅读源码的尝试,都因为源码内容多而杂,变量命名怪异而且繁多等等原因而放弃,希望这次我能坚持下来.本次分析的是C++ STL list的源码. 首先要了解list的本质. list是一个双向链表,但也有循环列表的部分性质,这意味着它从任意位置存取元素的速度会比较快,但是随机查询某个位置的元...

2021-09-19 10:57:37 481 1

原创 Linux基础教程笔记

这是我对2021年春季学期学习的Linux课程记录的笔记.内容较多,都是自己亲自整理的.Linux的内容多而且杂,主要都是指令,在不去充分运用的情况下会很容易遗忘,所以在应聘,考试或使用前应该回来浏览一遍Linux的笔记.注意,本笔记是从word文档中移植过来的,可能会存在纰漏,如有发现欢迎指正交流.第一章 基本的系统操作Passwd:修改密码 可以后面添加用户名:passwd aaronDate:展示当前时间 %m:用数字表示...

2021-09-13 16:19:23 244 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除