void Inxbuild()
{
int i, j, smallpos, smallval;
int[] p;
int[] q;
int previouscol, startpos;
previouscol = 0;
startpos = 0;
for (i = 0; i < netsize; i++) {
p = network [i];
smallpos = i;
smallval = p [1]; /* index on g */
/* find smallest in i..netsize-1 */
for (j = i + 1; j < netsize; j++) {
q = network [j];
if (q [1] < smallval) { /* index on g */
smallpos = j;
smallval = q [1]; /* index on g */
}
}
q = network [smallpos];
/* swap p (i) and q (smallpos) entries */
if (i != smallpos) {
j = q [0];
q [0] = p [0];
p [0] = j;
j = q [1];
q [1] = p [1];
p [1] = j;
j = q [2];
q [2] = p [2];
p [2] = j;
j = q [3];
q [3] = p [3];
p [3] = j;
}
/* smallval entry is now in position i */
if (smallval != previouscol) {
netindex [previouscol] = (startpos + i) >> 1;
for (j = previouscol + 1; j < smallval; j++)
netindex [j] = i;
previouscol = smallval;
startpos = i;
}
}
netindex [previouscol] = (startpos + maxnetpos) >> 1;
for (j = previouscol + 1; j < 256; j++)
netindex [j] = maxnetpos; /* really 256 */
}