数据结构 排序&&操作系统 3月14日 -- 天气:晴
今天天气非常热,已经到20度了,春天已经来了。
1. 堆排序
![](https://file.jishuzhan.net/article/1768460731361005569/81dbeffc2639644d621b43cdf510b7ba.webp)
![](https://file.jishuzhan.net/article/1768460731361005569/2d3b399d27773421828a482da24e3ad1.webp)
堆排序的思想是首先建立一个堆,然后弹出堆顶元素,剩下的元素再形成一个堆,然后继续弹出元素,直到所有元素都被弹出。
堆排序通常被应用于求解Top K问题
空间复杂度是1,时间复杂度是nlgn
是不稳定的排序
注意构建堆的方法
2. 归并排序
![](https://file.jishuzhan.net/article/1768460731361005569/db72031a02aeb3b3c7359ed3b4548cc8.webp)
![](https://file.jishuzhan.net/article/1768460731361005569/c96752c0f914807442d7889a76f90227.webp)
归并排序的思想是基于分治法。将两个有序的序列合并为一个有序序列,直到整个序列都有序
时间复杂度为nlogn,空间复杂度为n。原因是需要保存排序后的元素。
稳定排序
3. 基数排序
![](https://file.jishuzhan.net/article/1768460731361005569/50144bf2653f739d525f69ff5bd5dc74.webp)
![](https://file.jishuzhan.net/article/1768460731361005569/fd1f2c5045c2b3b8b58b91957c7f398c.webp)
基数排序的基本思想是:
- 首先建立n个桶,每一个桶的容量为带排序元素个数
- 然后依次将所有的元素映射到不同的桶中
- 然后将所有的桶中的元素再收回
- 然后继续比较下一位
- 当所有位数都比较完毕,则元素有序
因此时间复杂度为 带排序元素的长度最大位数 *(将所有元素映射到桶即
元素个数
+将所有元素从桶中收回即进制
)空间复杂度为一个二维数组 有
排序元素的长度最大位数
行,有进制
列
![](https://file.jishuzhan.net/article/1768460731361005569/d9df59a862774da320058c17196890c6.webp)
![](https://file.jishuzhan.net/article/1768460731361005569/7123600e9fbff67d9f3a93560f96a91e.webp)
4. 操作系统的定义
![](https://file.jishuzhan.net/article/1768460731361005569/86041112db2e91bcb35c63aa09789bc0.webp)
- 操作系统的定义:有效的管理计算机软硬件资源,合理规划工作流程和程序的执行,并且为用户提供良好的工作环境和人机交互界面
- 两大作用:
- 管理计算机资源
- 为用户提供良好的人机交互界面
5. 操作系统四大特征
5.1 并发性
并发: 指两个或多个事件在同一时间间隔内发生,这些事件宏观上时同时发生的,但在微观上是交替发生的。
**并行:**指两个或多个事件在同一时刻发生。
操作系统的并发性: 指计算机系统中"同时"的运行着多个程序,这些程序宏观上是同时运行的,在微观上是交替运行的。
我们的计算机的CPU有单核的,双核的,四核的,八核的!
单核CPU同一时刻只能运行一个程序,各个程序只能并发的执行(交替的使用CPU)!
多核CPU同一时刻可以执行多个程序,多个程序可以并行的执行(同时发生运行)
5.2 共享性
共享: 即资源共享,是指系统中的资源可供内存中多个并发执行的进程中同时使用。
所谓"同时",往往是宏观上的,而在微观上,这些进程可能是交替的对资源进行访问的(即分时共享)。
两种资源共享方式:互斥共享方式和同时共享方式!
互斥共享方式: 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源!
同时共享方式:系统中的某些资源,允许一个时间段内由多个进程"同时"对它们进行访问!
并发性和共享性互为存在条件的!
5.3 虚拟性
虚拟: 是指一个物理上的实体变为若干个逻辑上的对应物,物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
5.4 异步性
异步:再多道程序环境下,允许多个程序并发的执行,但由于资源有限,进程的执行不是一管到底的,而是走走停停已不可预知的速度向前推进,这就是进程的异步性!
只有系统拥有并发性,才有可能导致异步性
6. 操作系统的分类
![](https://file.jishuzhan.net/article/1768460731361005569/69497260af4c53ed63bac343e51708ad.webp)
7. 程序和进程
![](https://file.jishuzhan.net/article/1768460731361005569/8cd73e3cfa7c720a887ec65d416539e3.webp)
![](https://file.jishuzhan.net/article/1768460731361005569/39ab0b21af4881ecc7463aed4f21fe7b.webp)
进程被创建后,进入新建状态。当这个进程被分配了除了CPU以外其他所有的资源时,会进入就绪状态
7. 进程的通信
![](https://file.jishuzhan.net/article/1768460731361005569/f28a842fde9dc09d9cec09258e1d4a97.webp)
![](https://file.jishuzhan.net/article/1768460731361005569/d386662b3f6c3ac6db33da714a08f959.webp)
n-5最多有n-5个进程会进入阻塞状态
![](https://file.jishuzhan.net/article/1768460731361005569/8c45a7dde9a5a11af6006bef42ceda76.webp)