摘要: 3.冒泡排序 1.冒泡排序基本思想 数组从底部向上扫描,如果相邻的两个元素逆序,则交换两者,一次循环后,最小的元素就到了 数组的顶部,堆剩下的元素执行同样的操作,直到所有元素就绪。 2.代码 3.时空复杂度分析 时间复杂度:外层循环了n-1次,内层循环从n-1到1递减,从复杂度上,次数与n相关,时间 阅读全文
posted @ 2017-04-12 15:10 是召不是昭 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 2.选择排序 1.选择排序基本思想 选择排序就是先找到位置不合适的元素,再把它放到最终的位置上,基本思想是: 先找到数组的最小元素,和第一个位置的元素交换,然后在剩余的元素中找到最小的元 素,和第二个位置的元素交换......,直到所有元素都在合适的位置上。 2.代码 3.时空复杂度分析 时间复杂度 阅读全文
posted @ 2017-04-12 15:03 是召不是昭 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 1.概念 在C++中,派生类继承了基类的成员变量和成员函数,但有时,派生类不希望执行基类中定义好的某些成员函数, 这时,派生类可以通过虚函数这一机制来重新定义成员函数。例如。 输出结果:A B 当我们在基类的成员函数声明时加上virtual关键字,就使得fun()函数成为了虚函数,在派生类中,可以重 阅读全文
posted @ 2017-04-09 21:39 是召不是昭 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 1.函数模板 1.模板概念 当一个函数进行的操作对很多类型都适用时,我们没必要重载多个函数。可以定义一个通用 的函数模板。看一个栗子 模板关键字以template开始,后面跟一个模板参数列表。在调用函数时,编译器会用函数实参来为我们推断模板参数, 生成相应的函数。 2.模板类型参数 一般的,模板参数 阅读全文
posted @ 2017-04-09 19:52 是召不是昭 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1.管道的基本概念 管道是一种两个进程间进行单向通信的机制。当一个进程连接数据流到另一个进程时,我们使用术语管道(pipe)。 通常是把一个进程的输出通过管道连接到另外一个进程的输入。 2.pipe linux下管道由pipe系统调用函数创建,提供一个单向数据流。首先看一下它的原型 函数参数为一个由 阅读全文
posted @ 2017-04-07 15:39 是召不是昭 阅读(396) 评论(0) 推荐(0) 编辑
摘要: #ifndef HEAP_H #define HEAP_H #include #include using namespace std; template class Heap { public: Heap(vector &_vec) : vec(_vec){} ~Heap(){ vec.~vector(); } Heap(const He... 阅读全文
posted @ 2017-04-07 14:06 是召不是昭 阅读(152) 评论(0) 推荐(0) 编辑
摘要: #ifndef NODE_H #define NODE_H template class node{ public: T data; node *next; public: node(T _data=0) : data(_data),next(nullptr){} }; #endif // NODE_H #ifndef QUEUE_H #define... 阅读全文
posted @ 2017-04-05 21:03 是召不是昭 阅读(129) 评论(0) 推荐(0) 编辑
摘要: #ifndef NODE_H #define NODE_H template class node{ public: T data; node *next; public: node(T _data=0) : data(_data),next(nullptr){} }; #endif // NODE_H #ifndef STACK_H #define... 阅读全文
posted @ 2017-04-05 21:02 是召不是昭 阅读(155) 评论(0) 推荐(0) 编辑
摘要: #ifndef NODE_H #define NODE_H template class node{ public: T data; node *next; public: node(T _data=0) : data(_data),next(nullptr){} }; #endif // NODE_H #ifndef LINK_H #define ... 阅读全文
posted @ 2017-04-05 21:01 是召不是昭 阅读(125) 评论(0) 推荐(0) 编辑
摘要: C++运算符的重载 1.基本概念 运算符的重载是具有特殊名字的函数,他们的名字由关键字operator和运算符号决定 重载运算符的参数数量与该运算符的运算对象数量一样多,对于二元运算符,左侧的对象传 给第一个参数,右侧的对象传给第二个参数。 如果运算符函数时成员函数,第一个对象自动绑定到this指针 阅读全文
posted @ 2017-04-05 20:52 是召不是昭 阅读(144) 评论(0) 推荐(0) 编辑