什么是算法,什么是算法时间复杂度 算法是指解题方案的准确而完整地描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制,时间复杂度是指执行程序所需要的时间。通过时间复杂度和空间复杂度来评价算法。 算法的特性 有穷性、确切性、输入、输出、可行性 指针和指针变量 指针是内存地址,指针变量是存放内存地址的变量 C++中this指针的含义 通常在class定义时要用到类型变量自身,此时因为不知道变量名就用this来指向变量自身 面向对象和面向过程 面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。 面向对象的基本特征 抽象 封装:将客观事物封装成抽象的类,隐藏实现细节,使得代码模块化 (代码重用) 继承:扩展已存在的代码模块 (代码重用) 多态:同一消息可以根据发送对象的不同而采用多种不同的行为方式,可通过函数重载、函数重写、虚函数等方式实现多态(接口重用) 链表和数组的区别 链表是链式的存储结构, 数组是顺序存储结构;链表通过指针来连接元素,数组是按照下标进行存储;链表的增删操作不需要移动元素,易于扩充,数组不易扩充,但查找方便 局部变量和全局变量 局部变量是在函数内部定义的变量,只在本函数范围内有效,全局函数是在函数外定义的变量,从定义变量的位置到本源文件结束都有效,其目的是为了增加函数间数据联系的渠道 物理独立性和逻辑独立性 物理独立性是指通过文件管理系统建立数据文件,使数据的存取与程序分离,逻辑独立是指数据的使用与数据的逻辑结构相分离 C语言中的对象 广义指在内存中的一段有意义的区域。 图的遍历 从图的任意顶点出发,对图中的所有顶点访问一次且金访问一次,遍历方式有广度优先遍历和深度优先遍历,广度优先遍历类似树的层次遍历,深度优先遍历类似树的先根遍历 C++的虚函数 虚函数是在基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,主要是实现多态的机制 广义表和线性表 广义表是非线性的数据结构,广义表中放松对表元素的原子限制,允许他们有自身的结构,线性表是n个具有相同特性的数据元素的有限序列。 深拷贝与浅拷贝 浅拷贝是将源对象的值拷贝到目标对象中去,本质上来说源对象和目标对象共用一份实体,只是所引用的变量名不同,地址是相同的,深拷贝先开辟出一块和源对象大小一样的空间,将源对象里的内容拷贝到目标对象中去,这样两个指针就指向了不同的地址。深拷贝不会出现释放同一块内存的错误。
|