private static List<Group> sortGroupsByLeastAssigned()
{
int i, j;
List<Group> ret = new List<Group>();
bool[] v = new bool[ AllGroups.Count ];
for (i = 0; i < AllGroups.Count; i++)
{
int minx = 1 << 30;
int indx = -1;
for (j = 0; j < AllGroups.Count; j++)
{
if( !v[j] && GroupAssignments[j] < minx )
{
minx = GroupAssignments[j];
indx = j;
}
}
v[indx] = true;
ret.Add(AllGroups[indx]);
}
return ret;
}