数据结构
1 数组和链表的区别
逻辑结构:数据的大小确定,不能动态增减。链式存储可以适应动态地增减数据的情况,可以方便地插入、删除数据线。
内存存储:数组从栈中分配空间(new为堆上创建);链表从堆中分配空间,自由度大胆申请管理比较麻烦。
访问方式:数组内存连续存储;链表链式存储,通过指针访问,效率比数组低。
2 快速排序过程
首先,选择一个基准元素
通过一趟排序把记录分割成独立的两部分,其中一部分记录的元素值比基准元素值小,另一部分比基准值大
基准元素在中间
然后分别对两部分用同样的方法进行排序,直到整个序列有序
3 归并排序
分而治之思想的排序方式,渗透着递归。
核心思想是将两个有序的数列合并成一个大的有序的序列。
比如说有8个数据,首先我们可以把单个元素看成一个有序的子表,每个字表长度为1,然后两两归并,得到4个长度为2的有序表,再进行归并,如此重复,直到合并成一个长度为n的有序表为止。
4 堆排序
堆排序是一种树形选择排序方法。在排序过程中,将L[1...n]视为一棵完全二叉树的顺序存储结构,利用父亲节点和子节点之间的内在关系,在无序区选择关键字元素最大(或最小)的元素。
堆的应用:优先队列
5 Prim算法和Dijkstra算法的区别
Dijkstra算法是求起点S到各顶点之间的最短距离
prim算法是最小生成树算法,与Dijkstra算法的区别是用集合代替了Dijkstra中的起点
操作系统
6 进程和线程的区别
进程是资源调度和分配的基本单位,线程是CPU调度和分派的基本单位
一个程序执行至少有一个进程,一个进程至少有一个线程,线程依赖进程存在
不同进程间不共享资源,而同一进程的线程共享资源
进程在执行过程中拥有独立的内存空间,线程共享进程的内存
7 操作系统的基本功能
(1)处理机管理
(2)存储管理
(3)文件管理
(4)设备管理
(5)用户接口
8 进程之间的通信方式
低级通信:信号量
高级通信
(1)共享存储器系统
(2)消息传递系统(消息队列)
(3)管道
9 处理机调度算法
先来先服务
最短作业优先
时间片轮转
高响应比
多级反馈调度
优先权调度
10 页面置换算法
最佳置换:淘汰最长时间内不被访问
先进先出置换算法:淘汰最先进入内存的页面
最近最久未使用置换算法:淘汰最近最久未使用的页面,设置访问字段,记录上次访问所所经历的时间
Clock置换算法:最近未用算法(NRU),设置访问位,连成循环队列。某页被访问,访问位置1。淘汰时检查访问位,0则淘汰,若为1,重新置0
最少使用置换算法:淘汰最近时期使用最少的页面淘汰
11 抖动
一个页面刚被换入内存就又被淘汰,然后又被调入内存,又被淘汰的一种现象。
12 磁臂调度算法
先来先服务
最短查找时间优先
Scan算法
C-Scan(扫描永远一个方向)