1、栈和队列的区别?
①都是操作受限的线性表,插入和删除都只能在端点处进行
②对于栈而言:插入和删除都只能在同一端进行,该端称为栈项,导致栈的特点为先进后(FIL0)
③对于队列而言,插入和删除操作在异端进行,能够插入的一端称为队尾,能够删除的一端
称为队头,导致队列的特点先进先出(FIF0)
2、标准 IO 和文件 IO 的区别?
①标准 IO 和文件 IO 都可以进行文件读写,都会进行系统调用
②标准 IO=系统调用+缓冲区
③标准 IO 有缓冲区,文件 IO 没有缓冲区
④使用标准 IO 可以减少系统调用的次数,提高系统的频率,执行效率更高,文件 IO 的执行
效率较低
⑤文件 IO 使用文件描述符,标准 IO 使用文件指针
3、数组和链表的区别?
①两者都属于线性结构
②从存储结构来看:数组顺序存储(使用一段连续的存储空间),逻辑相邻物理也相邻;
链表链式存储(任意一段空间),逻辑相邻物理不一定相邻
③时间复杂度:数组插入删除 O(n),修改查找 O(1),所以数组适合查找修改;
链表插入删除为 O(1),修改查找 O(n),链表更适合插入和删除
④访问方式:数组支持随机访问,可以通过下标进行;
链表不支持随机访问,必须从头结点开始遍历
⑤数组静态分配内存,链表动态分配内存
⑥数组的存储密度大于链表的存储密度
4、快速算法排序的思想
先任意选定一个数据元素当做基准,将剩余元素跟基准进行比较,分为大小两部分,然后对
每一个部分再进行上述操作,直到每部分只有一个元素为止,则排序结束