// Lemma 4.4
private PermutationNetwork CreateBlockNeighborSorter(int blockBitLength, int borderBitLength, int intraBlockSortQuality)
{
PermutationNetwork pn = new PermutationNetwork(1 << K);
int blockSize = 1 << blockBitLength;
int blockCount = 1 << (K - blockBitLength);
int borderSize = 1 << borderBitLength;
PermutationNetwork borderSorter = CreateBorderSorter(borderBitLength, intraBlockSortQuality);
for (int i = 0; i < blockCount - 1; i++)
{
pn.AppendNetwork(borderSorter.Clone() as PermutationNetwork, i * blockSize + (blockSize - borderSize));
}
return(pn);
}