int cnt[][] = new int[numBytes][256];
int b[] = new int[arr.length];
for (int j = 0; j < numBytes; j++) {
// подсчитываем количество элементов для каждого значения j-го разряда
for (int i = 0; i < arr.length; i++) {
if (iByteN(arr[i], j) < 255)
cnt[j][1 + iByteN(arr[i], j)]++;
}
//вычисляем позиции cnt[i], начиная с которых будут располагаться элементы
//с соответствующим значением j-го разряда
for (int i = 1; i < 256; i++)
cnt[j][i] += cnt[j][i - 1];
...
// reset the node maps
for(y=0;y<m;y++)
{
for(x=0;x<n;x++)
{
closed_nodes_map[x][y]=0;
open_nodes_map[x][y]=0;
}
}
/****** после этих циклов x == n и y == m *******/
// create the start node and push into list of open nodes
n0=new node(xStart, yStart, 0, 0);
n0->updatePriority(xFinish, yFinish);
pq[pqi].push(*n0);
/****** и эта запись -- мимо массива *******/
open_nodes_map[x][y]=n0->getPriority(); // mark it on the open nodes map
непонятен цикл декодирования, а точнее откуда берется очередной «GET BIT»
uint32_t xor_all = 0;
uint32_t xor_bit[32] = {0};
....
for (i = 0; i < n; ++i) {
xor_all ^= in;
for (j = 0; j < 32; ++j) {
if (in & (1 << j))
xor_bit[j] ^= in;
}
}
for (j = 0; j < 32; ++j) {
if (xor_all & (1 << j)) {
out1 = xor_bit[j];
out2 = xor_all ^ xor_bit[j];
break;
}
}