介绍
总结记录实习过程中的学习笔记,本文记录C++相关面试题。
相关链接
知识点
什么是多态,多态有什么用途
- 定义:“一个接口,多种方法”,程序在运行时才决定调用的函数。
- 实现:C++多态性主要是通过虚函数实现的,虚函数允许子类重写override(注意和overload的区别,overload是重载,是允许同名函数的表现,这些函数参数列表/类型不同)。
- 目的:接口重用。封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用。而多态的目的则是为了接口重用。
- 声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的子类的不同而实现不同的方法。
各个排序算法的时间复杂度和稳定性
排序方式 | 平均复杂度 | 最大复杂度 | 最小复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|---|---|
插入排序 | O(n^2) | O(n^2) | O(n) | O(1) | 稳定 |
冒泡排序 | O(n^2) | O(n^2) | O(n) | O(1) | 稳定 |
快速排序 | O(nlog_{2}n) | O(n^2) | O(nlog_{2}n) | O(1) | 不稳定 |
选择排序 | O(n^2) | O(n^2) | O(n^2) | O(1) | 不稳定 |