document.write('
本题的主要思路如下:对所有的分区进行遍历,同时用一个变量dIndex记录上次分配磁盘的下标,
初始化为0;对于每个分区,从上次分配的磁盘开始继续分配,如果没有足够的空间,则顺序找其他
的磁盘,直到找到合适的磁盘为止,进行分配;如果找不到合适的磁盘,则分配失败,实现代码如
下:
 def is_allocable(d,p):
 dIndex=0 #磁盘分区下标
 i=0
 while i<len(p):
 #找到符合条件的磁盘
 while dIndex<len(d) andp[i]>d[dIndex]:
 dIndex+=1
 #没有可用的磁盘
 if dIndex>=len(d):
 return False
 #给分区分配磁盘
 d[dIndex]-=p[i]
 i+=1
 return True
 
 if __name__=="__main__":
 d=[120,120,120] #磁盘
 p=[60,60,80,20,80] #分区
 if is_allocable(d,p):
 print "分配成功"
 else:
 print "分配失败"
 程序的运行结果为:
 分配成功
 算法性能分析:

 这种方法使用了双重循环,因此,时间复杂度为O(MN)。 

');