python - 我正在尝试在 OS 中的 python 中做一个最适合的算法
问题描述
我正在尝试获取应该显示的输出,但 blockSize 与 memorySize 相同(正在减少,但我需要我的 blockSize 保持其初始值)另外,如果您可以建议对最佳拟合进行任何改进,一定要告诉!
def bestFit(blockSize,m,jobSize,n):
allocation=[-1] * n
memorySize=blockSize
print(blockSize)
for i in range(n):
bestId = -1
for j in range(m):
if memorySize[j] >= jobSize[i]:
if bestId == -1:
bestId = j
elif memorySize[bestId] > memorySize[j]:
bestId = j
if bestId != -1:
allocation[i] = bestId
memorySize[bestId] -= jobSize[i]
print(blockSize)
print("Job No. | Job Size. | Memory Size | Internal Fragmentation")
for k in range(n):
print(" ",k, " ",jobSize[k]," ",blockSize[allocation[k]]," ",blockSize[allocation[k]]-jobSize[k])
blockSize = [100, 500, 200, 300, 600]
processSize = [212, 417, 112, 426]
bestFit(blockSize, len(blockSize) , processSize, len(processSize))
解决方案
您应该使用copy.copy()在第 3 行中获取变量的副本
from copy import copy
def bestFit(blockSize,m,jobSize,n):
allocation=[-1] * n
memorySize=copy(blockSize)
...
推荐阅读
- android - 带有圆形边缘的不确定 ProgressBar
- javascript - 如何使用python发布数据
- http - 获取 HttpContext.Response 有什么用?
- javascript - 如何在nodejs中获取任何fb页面的fbId
- python - 在熊猫中,如何用另一个子数据框替换子数据框
- c# - 在 ContentView 页面 Xamairn.Forms (Android) 中未调用 CarouselView PositionChange 事件
- html - 在模态窗口内时,表单提交不起作用。引导程序和角度
- docker - 从 NGINX 中删除服务器标头
- jenkins - 如何将所有 jenkins 角色迁移(导出和导入)到另一个 jenkins 实例?
- node.js - 在 node.js 中读取带空格的 args