public 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 */
    }