文本,C++
文章平均质量分 76
Anger_Ant
一人我饮酒醉
展开
-
剑指Offer读书笔记(3)
2.4.1 排序和查找 查找相对简单,查找分为顺序查找、二分查找、哈希表查找和二叉排序树查找。 PS:哈希表最主要的优点是我们利用它能够在O(1)的时间度查找某一元素,是效率最高的查找方式。但缺点在于需要额外的空间来实现哈希表。 排序比较复杂,排序分为插入排序,哈希排序,冒泡排序,选择排序,堆排序,归并排序,快速排序。 PS:比较排序的优缺点应从额外空间消耗,平均时间复杂度和最差时间复杂度原创 2017-07-30 16:44:38 · 280 阅读 · 0 评论 -
剑指Offer读书笔记4
3章 总结:本章分别从规范性、完整性和鲁棒性介绍代码编写应该注意的事项以及从这几方面下手如何写出最优的的代码。 在编写代码时要注意规范性,尽量清晰的书写每个字母,通过缩进和对齐括号让代码布局合理,同时合理的命名代码中的变量和函数。 最好在编码前全面的考虑所有可能的输出,确保写出的代码在完成了基本的功能之外,还考虑了边界条件,并做好了错误处理。只有全面的考虑到这3方面的代码才是完整的代码。原创 2017-08-02 09:12:12 · 279 阅读 · 0 评论 -
智能指针--RAII
智能指针:RAII全称为Resource Acquisition Is Initialization,它是在一些面向对象语言中的一种惯用法。RAII源于C++,在Java,C#,D,Ada,Vala和Rust中也有应用。是为了解决资源管理时的异常安全性提出了该用法。实现了普通指针的指向和解引用的功能,并实现在类的对象构造时初始化对象和析构时负责释放资源。 RAII要求,资源的有效期与持有资源的对原创 2017-07-26 17:01:26 · 306 阅读 · 0 评论 -
剑指Offer读书笔记5
1.画图让抽象问题形象化 图像能够使抽象的问题具体化,形象化,通过画图能够找到问题的规律,以及题目隐含特点,以便我们能够找出题目的边界条件。 例题:二叉树的镜像 为了理解题意,可以画出一棵二叉树和它的镜像图。不难发现,两棵树的根节点相同,但他们的左右两个子节点交换了位置。 因此我们可以得出如下转换的过程图: 总结一下,我们得出一棵树的镜像的过程:先前序遍历这棵原创 2017-08-04 20:16:34 · 323 阅读 · 0 评论 -
剑指Offer读书笔记(1)
2章 2.2编程语言 1.C++中定义一个空类型,对该类型求sizeof()为1,声明该类型时它必须在内存中占有一定的空间,即使加入构造函数和析构函数结果还是1。编译器如果发现一个类型中包含虚拟函数,就为该类型生成虚拟函数表,并在该类型的每一个实例中加入一个指向指针,此时求sizeof()时,在32位下为4,64位下为8。 2.C++中,struct定义的类型中默认是public,class原创 2017-07-28 13:14:47 · 252 阅读 · 0 评论 -
剑指Offer读书笔记(2)
2.3数据结构 数组和字符串:用连续的内存存储数字和字符。 链表和树:因操作时会用到大量的指针,解决问题时留意代码的鲁棒性。 栈:一个与递归紧密相关的数据结构。 队列:与广度优先遍历紧密相关 数组 时间复杂度为O(1),空间效率不高。 使用动态数组时,尽量减少改变容量大小的次数,减少时间上的消耗。 PS:C/C++中没有记录数组的大小,用指针访问时留意边界条件。 再用siz原创 2017-07-28 13:57:45 · 259 阅读 · 0 评论