ArrayList<Integer>candidates=newArrayList<Integer>();//Dynamically resizable array list for allocation candidates (interleaved with index and memory size)
intcounter=0;//Counter for measuring unallocated memory
//Scan through memory block and get free blocks
for(inti=0;i<memoryBlock.length;i++)
{
//If position in memory block here is 0, iterate from that index and count up sequential 0's
if(memoryBlock[i]==0)
{
for(intj=i;j<memoryBlock.length-i;j++)
{
if(memoryBlock[j]==0)
{
counter++;
}
}
if(counter>=jobSize)
{
candidates.add(i);//Store index
candidates.add(counter);//Store size of free memory chunk
}
counter=0;
}
}
//Iterate through candidate sizes
bestSizeIndex=0;//Initialize best index to first spot in array list
bestSize=candidates.get(1).intValue();//Initialize bestSize to first space size in candidate