随笔
文章平均质量分 83
川师小灰灰
这个作者很懒,什么都没留下…
展开
-
动态规划解0-1背包问题(C语言版)
这学期开的算法课,感觉好难,光这个问题就弄了好久,我这里的代码非本人原创代码,都是借鉴网上的代码按自己的理解加以改进的,原网页地址为http://www.cnblogs.com/qinyg/archive/2012/04/26/2471829.html问题描述:给定N中物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入转载 2015-10-26 19:53:57 · 36750 阅读 · 9 评论 -
阻塞和挂起的区别
进程的阻塞和挂起的区别l 挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则是不同的事件或资源(如信号量)就有自己的队列。l 任务调度是操作系统来实现的,任务调度时,直接忽略挂起状态的任务,但是会顾及处于pe原创 2017-04-10 11:24:52 · 7723 阅读 · 0 评论 -
银行家算法解决死锁问题
银行家算法解决死锁问题一.概念引入银行家算法( banker's algorithm )由 Dijkstra于1965提出,关键是将死锁的问题演示为一个银行家贷款的模型,由于能用于银行系统的现金贷款而出名。一个银行家向一群客户发放信用卡,每个客户有不同的信用额度。每个客户可以提出信用额度内的任意额度的请求,直到额度用完后再一次性还款。银行家承诺每个客户最终都能获得自己需要的额度。所谓“最终原创 2017-04-10 11:23:53 · 20481 阅读 · 1 评论 -
同步互斥问题求解
1图书馆阅览室问题问题描述:假定阅览室最多可同时容纳100个人阅读,读者进入时,必须在阅览室门口的一个登记表上登记,内容包括姓名、座号等,离开时要撤掉登记内容。用P、V操作描述读者进程的同步算法。 (分析:读者有任意多个,但进入阅览室阅读最多为100人,为此可设一个信号量s,代表空座位的数目;另登记表为临界资源,需设一个用于互斥的信号量mutex,防止2个及以上的读者进程同原创 2017-04-10 11:22:54 · 6200 阅读 · 0 评论 -
进程学习的一些问题
1.程序并发执行,为何会失去封闭性和可再现性?【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。同时由于失去了封闭性,也将导致其再失去可再现性。程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。 2.操作系统为什么要引入进程概念?它会产原创 2017-04-10 11:21:55 · 2387 阅读 · 0 评论 -
进程同步问题的几个案例
1、设公共汽车上,司机和售票员的活动分别是: 司机的活动:启动车辆; 正常行车; 到站停车; 售票员的活动: 关车门; 售票; 开车门; 在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用P、V操作实现它们的同步。 解:设两个信号量S原创 2017-04-10 11:19:58 · 12181 阅读 · 4 评论 -
管程
一、 管程的概念1. 管程可以看做一个软件模块,它是将共享的变量和对于这些共享变量的操作封装起来,形成一个具有一定接口的功能模块,进程可以调用管程来实现进程级别的并发控制。2. 进程只能互斥得使用管程,即当一个进程使用管程时,另一个进程必须等待。当一个进程使用完管程后,它必须释放管程并唤醒等待管程的某一个进程。3. 在管程入口处的原创 2017-04-10 11:17:16 · 2785 阅读 · 0 评论 -
读者写者问题
读者写者问题是操作系统中经典的互斥问题:一块数据被多个读者和写者的访问,需要考虑读写互斥、写写互斥(可以同时由多个读者读取)。具体的又可以分为读者优先和写者优先两类。读者优先算法:当新的读者到来的时候,若当前正有读者在进行读操作,则该读者无需等待前面的写操作完成,直接进行读操作。设置两个互斥信号量:l rwmutex用于写者与其他读者/写者互斥的访问共享数据l rmutex原创 2017-04-10 11:15:54 · 2009 阅读 · 0 评论 -
回溯法解01背包问题(C语言版)
问题描述:给定N中物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大??在选择物品的时候,对每种物品i只有两种选择,即装入背包或不装入背包。不能讲物品i装入多次,也不能只装入物品的一部分。因此,该问题被称为0-1背包问题。 问题分析:令V(i,j)表示在前i(1(1) V(原创 2015-12-09 15:08:30 · 17725 阅读 · 9 评论 -
递归和分治思想解全排列问题
递归与分治算法之字符全排列一、问题描述设R={r1,r2,r3,...rn}是要进行全排列的n个元素,设Ri =R-{ri}.集合X中元素的全排列记为Perm(X)。(ri)Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri得到的排列。R的全排列可归纳定义如下:当n=1时,Perm(R)=(r),其中r是集合R中唯一的元素当n>1时,Perm(R)由原创 2015-12-02 16:28:09 · 2769 阅读 · 0 评论 -
回溯法-旅行售货员问题(C语言)
1、旅行员售货问题 问题描述 某售货员要到若干城市去推销商品,已知各城市之间的路程(旅费),他要选定一条从驻地出发,经过每个城市一遍,最后回到驻地的路线,使总的路程(总旅费)最小。(必须从1号店出发,最后回到出发地)/**************************************************************** *问 题:原创 2015-11-17 19:40:58 · 15644 阅读 · 7 评论 -
快速排序算法-分治思想
以下内容全部转载自:http://www.cnblogs.com/luchen927/archive/2012/02/29/2368070.html今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot转载 2015-11-16 12:19:04 · 6959 阅读 · 0 评论 -
快速幂取模详解(C语言版)
在百度文库上下载的快速幂详解,作者给出快速幂算法的完整解释(虽然我也还没看懂,但是确实写的很好,正在仔细研究中)用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~(原网址http://wenku.baidu.com/link?url=AQNEjQ6S-31iyRQ0vDVjuVS4xdKfmIADSEe5_5swdE2Vggly8BrTLcSjBxhKHQsL-WP4wzQjz7XpVc转载 2015-11-01 16:44:45 · 10189 阅读 · 3 评论 -
动态规划解最长公共子序列问题(LCS)C语言加注释
【问题】 求两字符序列的最长公共字符子序列问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严格递增下标序列,i1,…,ik-1>,使得对所有的j=0,1,…,k-1,有xij=yj。例如,X=“ABCBDAB原创 2015-10-27 14:56:13 · 20594 阅读 · 5 评论 -
作业、进程、管程概念区别
作业:用户在一次解决或是一个事务处理过程中要求计算机系统所做的工作的集合,它包括用户程序、所需要的数据集控制命令等。作业是由一系列有序的步骤组成的。在执行一个作业可能会运行多个不同的进程。进程:程序在一个数据集上的一次运行过程。是操作系统资源分配的基本单位。线程:是进程中的一个实体,是被操作系统独立调度和执行的基本单位。一个进程包含一个或多个线程。 线程特征:1、线程的执行状态原创 2017-04-10 11:27:08 · 1723 阅读 · 0 评论