快速排序的时间和空间复杂度

C++ STL 分治 排序 数组 算法 快速排序 插入排序 冒泡排序

平均情况下快速排序的时间复杂度是nlgn,最坏情况是n^2,但通过随机算法可以避免最坏情况。由于递归调用,快排的空间复杂度是lgn。

C++手稿:数组传参与降级行为总结

C++ 内存 常量 引用 指针 数组 运算符 函数指针 类型转换

数组名在多数情况下会被降级为首元素的指针,但数组不是指针!多维数组可以视作一个普通数组,只不过元素类型也是数组。多维数组也存在降级行为。

Effective C++ 54:熟悉一下标准库,比如 TR1

Effective-C++ C++ STL Boost TR1

标准C++库是由STL, iostream, 本地化,C99组成的。TR1添加了智能指针、通用函数指针、哈希容器、正则表达式以及其他10个组件。 TR1在是一个标准(standard),为了使用TR1你需要一个TR1的实现(implementation),Boost就是一个很好的TR1实现。

Effective C++ 52:写了 placement new 就要写 placement delete

Effective-C++ C++ 异常 指针 动态内存 名称隐藏 构造函数

new和delete是要成对的,因为当构造函数抛出异常时用户无法得到对象指针,因而delete的责任在于C++运行时。 运行时需要找到匹配的delete并进行调用。因此当我们编写了"placement new"时,也应当编写对应的"placement delete", 否则会引起内存泄露。在编写自定义new和delete时,还要避免不小心隐藏它们的正常版本。

JavaScript 内置对象与原型链结构

Chrome JavaScript 原型继承 原型链

JavaScript是一门直译式脚本语言,是一种动态类型、基于原型的语言。 JavaScript的灵活性不亚于C++,你可以使用JavaScript尝试不同的程序设计范型。 比如函数式编程、指令式或过程式编程、以及基于原型的面向对象编程。

不同于Java、C#等面向对象语言,JavaScript采用基于原型的继承方式。 本文便来介绍使用JavaScript进行面向对象编程的核心概念:原型链。

上一页 下一页