bool changes = true;
while (changes)
{
changes = false;
for (int i = 0; i < idArray.length(); i++)
{
for (int j = 0; j < idArray.length(); j++)
{
if (i == j)
continue;
if (needSwitchDrawOrder(idArray[i],idArray[j])) //страшная логика
{
idArray.swap(i,j);
changes = true;
}
}
}
}