オペレーティング システムの最短ジョブ ファースト テクニックをシミュレートしようとしていますが、現在、プロセスが到達した時間をマッピングすることに行き詰まっています。
私はこのオブジェクトの配列を持っています
var arr =
[
{
"job" : "J1",
"at" : 3
},
{
"job" : "J2",
"at" : 0
},
{
"job" : "J3",
"at" : 5
},
{
"job" : "J4",
"at" : 3
}
]
私が最初にしたことは、到着時間に従って配列を整理することでしたat
function compare(a,b) {
if (a.at < b.at)
return -1;
if (a.at > b.at)
return 1;
return 0;
}
sorted = arr.sort(compare);
今、私はそれをテーブルに保存したかったので、次のようになりました。
-------------------------
| Time | Process |
-------------------------
| 0 | ? |
-------------------------
| 1 | ? |
-------------------------
| 2 | ? |
-------------------------
| 3 | ? |
-------------------------
| ... |
-------------------------
| ... |
-------------------------
| ... |
-------------------------
私がしたことは、最大のものを持っているオブジェクトを見つけることですat
maxTime = 0;
$.each(arr, function(k, v){
maxTime = v.at > maxTime ? v.at : maxTime;
});
そしてループし始めた
var row = [];
for (var i = 0; i <= maxTime; i++) {
row.push('<tr>');
row.push('<td>' + i);
var arrived = true;
for (var j = 0; j < sorted.length; j++) {
arrived = false;
if(sorted[j].at == i) {
row.push('<td>' + sorted[j].job);
}
};
if(!arrived) {
row.push('<td>');
}
};
$('table').append(row.join(''));
そして、これは何が起こるかfiddle . 追加のセルが作成されていることがわかる場合、何が欠けているのかわかりません。たぶん後でバースト時間について尋ねます。