- 博客(17)
- 收藏
- 关注
原创 P vs NP
P vs NP基本概念P类问题NP类问题P = NP ?NPC类问题P,NP问题是根据问题的解决速度对问题进行分类的结果。基本概念下面是一些需要了解的基本概念 验证:给定一个解决方案,验证其满足问题的要求,即是问题的一个解; 多项式(polynomial)时间的算法:对于规模为n的输入,在最坏的情况下的运行时间为O(nk),其中k为某一确定常数;了解一下即可,不理解没关系 确定性(Determinism)算法:设A为解决问题P的一个算法,A一定可以得到P的解 非确定性(Nondeter
2021-08-17 15:22:47
256
原创 Java的一些要点
多态,动态绑定机制,静态绑定机制多态多态:同一行为的不同表现形式/*白话一点,用子类对象实例化父类*/举个例子:public static void main(String[] args) { Person individual = new Student(); individual.speak(); Person indicidual_2 = new Teacher(); indicidual_2 = new Te
2021-04-29 20:45:24
118
原创 STL(c++标准库)
容器容器都是类模板,实例化后称为容器类,用容器类定义的对象称为容器对象ps:用vector来解释一下vector是一种顺序容器vector< int > 是容器类的名称vector< int > a则定义了一个容器类对象a顺序容器元素在容器中的位置与元素的值是无关的,容器不是排序的,可以在任和指定位置插入元素vectorvector作为一种可变长的动态数组,可以根据需要自行分配空间,但是好像不会回收,用成员函数capacity()可以看出来。下面是常用的成员函数:s
2021-02-24 00:36:45
104
原创 现代操作系统——文件系统
文件系统文件模型文件类型文件命名文件结构文件属性文件操作文件存储的实现连续分配链表分配多级索引(UNIX)目录(directory)一级目录系统层次目录系统(Hierarchical Directory System)路径名目录操作目录的内容链接文件的权限文件模型文件是进程创建的信息逻辑单元,是一组相关数据的集合。文件提供了一种在磁盘上保存信息而且方便以后读取的方法。操作系统中对文件进行管理的部分称作文件系统。文件类型文件可以分为普通文件(ordinary)和目录(directory)。UNIX操
2021-01-02 21:52:02
383
原创 现代操作系统——内存管理
内存管理进程内存模型重定位静态重定位动态重定位分区式内存管理单一分区(Single-Partition)固定分区(Fixed-Partition)可变分区(Variable-Partition)空闲内存管理位图(bitmap)链表(linklist)内存扩展覆盖(overlaying)交换(swapping)分页式内存管理虚拟内存分页进程内存模型首先进程的内存进行分段(segment),从下至上的介绍一下:代码段(text segment):用来存放程序的代码,具有可执行,可读权限。程序不可能在运行
2020-12-31 13:46:53
1013
原创 现代操作系统——死锁
死锁资源死锁的概念死锁产生的原因死锁产生的必要条件死锁模型解决死锁鸵鸟算法检查和回复避免死锁资源轨迹图银行家算法预防死锁资源资源分为两类:■可抢占式资源(preemptable resource)是指可以从拥有它的进程中抢占而不会产生任何副作用。比如存储器就是一类可抢占式的资源,还有CPU。■不可抢占式资源(nonpreemptable resource)是指再不引起相关计算失败的情况下,无法把它从占有它的进程处抢占过来。当系统将这些资源分配给进程后,无法再强行收回,只能等进程自行释放。比如光盘刻录
2020-12-30 18:55:29
270
原创 现代操作系统——进程间通信
进程间通信进程间通信互斥忙等待(busy waiting)屏蔽中断(disabling interrupts)锁变量(lock variables)严格轮转法(strict alternation)Peterson解法TSL指令同步睡眠与唤醒(sleep and wakeup)进程间通信进程间通信(Inter Process Communication, IPC)进程间通信主要解决三个问题:◉一个进程把信息传递给另一个进程◉确保两个或多个进程在关键活动(又叫临界资源,critical resour
2020-12-29 22:29:34
614
1
原创 现代操作系统——调度
调度进程行为调度目标调度算法的分类批处理系统中的调度先来先服务(first-come first-served)最短作业优先(shortest job first)最短剩余时间优先(shortest remaining time next)最高响应比优先(high response-ratio first)交互系统中的调度轮转调度(round robin)优先级调度(priority)线程调度进程行为几乎所有的进程都是I/O请求和计算都是交替突发(burst)的。比如,CPU不停的运行一段时间,然后发
2020-12-29 15:37:52
486
原创 现代操作系统——线程
线程经典的线程模型线程中的内容线程的状态和线程相关的系统调用线程的实现在用户空间中实现线程在内核中实现线程混合实现经典的线程模型引例:在字处理软件的例子中我们可以看到线程在实际应用中的必要性,三个线程,第一个用来和用户交互,第二个用来在的到通知时对文档进行格式化,第三个用来备份。在这里,三个线程共享一片公共内存,所以可以对同一个文件进行操作,而三个进程不能。现在不妨这样重新理解一下进程:◉为了方便管理,用某种方法把一些资源集中在一片地址空间,集中起来的这个概念模型称作进程。◉这些资源包括程序(co
2020-12-28 23:25:59
167
原创 现代操作系统——进程
进程进程概念进程与程序的区别进程的组成多道程序设计进程的层次结构UNIXWindows进程的创建UNIX系统中的进程创建进程的状态进程的终止进程概念进程是程序在某个数据集合上的一次执行活动ps:一个程序运行两遍算作两个进程进程与程序的区别相对于程序来说,进程是活的,具有完整的生命周期,有动态的产生和消亡的过程;而程序就是一段代码(code),是死的。进程的组成进程由程序(code),处理数据(data)和程序控制块(PCB, Process Control Block)组成。ps:为了实现进
2020-12-28 18:48:01
211
原创 Branch and Bound Algorithm
Branch and Bound Algorithm分支限界算法主要思想限界函数两种常见的分支限界先进先出(FIFO)最小耗费或最大收益分支限界和回溯分支限界算法分支限界算法是另一种系统搜索解空间的方法。分支限界算法也常把解空间组织成树的结构(常捡的,子集树和排列树),一般采用广度优先(BFS)或最小耗费来搜索树主要思想对一个扩展结点,一次生成其所有的子节点,将不可能产生可行解(或最优解)的结点舍去,其余的记入活结点表;按照一定规则,从活结点表中取出下一个结点作为新的扩展结点,重复展开,直到得到可
2020-12-23 20:46:07
662
1
原创 Backtracking
Backtracking回溯法主要思想基本步骤剪枝函数约束条件和限界函数算法框架递归回溯迭代回溯子集树排列树子集和数问题深度优先搜索(DFS)回溯法回溯算法是搜索问题的一种系统方法,回溯算法和分支限界算法都是对候选解进行系统检查的方法,两种方法可以使得最坏情况下和一般情况下的求解时间大大减少。主要思想用合适的组织方法组织问题的解空间(通常是解空间树),通过深度优先策略对解空间进行遍历。根节点作为遍历的开始节点,开始节点既是活结点(live node)又是扩展结点(expansion node)。
2020-12-22 11:37:26
173
原创 Devide and Conquer
Devide and Conquer分治算法——分而治之分治算法的基本思想分治算法的使用条件分治算法的基本步骤归并排序快速排序分治算法——分而治之分治算法的基本思想将问题划分(devide)成多个子问题递归的解决(conquer)每个子问题将子问题的解合并(combine)为原问题的解分治算法的使用条件分治算法能解决的问题一般具有如下特征:①问题的规模缩小到一定程度就可以很容易的解决②问题可以分解为若干规模较小的相同问题③利用分解出的子问题的解可以合并为原问题的解④原问题分解出的各个子
2020-12-21 19:14:25
401
2
原创 Greedy Method
Greedy Method最优化问题(Optimization Problems)贪心准则最优化问题(Optimization Problems)m每个最优化问题包含一个限制条件(constrain)和一个优化函数(optimization function),符合限制条件的求解方案称作问题的可行解,使优化函数能取得最佳值的解决方案称作最优解贪心准则...
2020-12-19 14:41:43
642
原创 程序性能分析
程序性能程序性能空间复杂度时间复杂度空间复杂度程序所需空间组成指令空间(instruction space)数据空间(data space)环境栈空间(environment stack space)空间复杂度分析时间复杂度程序性能空间复杂度空间复杂度是指程序运行所需的内存大小①在任何一个计算机上运行程序,需要保证有足够的内存能用②不同的解决方案对内存可能有不同的要求,一般希望选择更优的方案,把更多的内存留作他用③通过对空间复杂度的分析,可以对问题的规模进行一个大致的估计时间复杂度时间复杂度
2020-12-19 14:40:01
1382
1
原创 Dynamic Programming
Dynamic Programming基本思想问题特征算法设计的步骤基本思想动态规划算法和分治算法类似,都是讲原问题划分为若干个子问题,然后从子问题的解中的到原问题的解与分治算法不同的是,分治算法划分出的子问题要求独立,子问题的求解过程一般也没有交集;但应用动态规划算法的待求解问题,子问题之间不相互独立,这也是动态规划得以发挥优势的地方动态规划的优势在于对划分出的公共子问题,动态规划算法只对他们求解一次,相对于简单的递归算法,动态规划减少了许多不必要的计算,因此在性能上有优势;如果待求解问题不属于这
2020-12-19 14:39:50
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人