/* Encuentra la nueva posición de un índice en función de su recuento
y lo coloca ahí. Dicha posición es devuelta. */ int find_new_position_for(int index) { int i; for(i = index; prob[i]==prob[i-1]; i--); if (i<index) { int ch_i, ch_symbol; ch_i = _index_to_symbol[i]; ch_symbol = _index_to_symbol[index]; _index_to_symbol[i] = (unsigned char) ch_symbol; _index_to_symbol[index] = (unsigned char) ch_i; _symbol_to_index[ch_i] = index; _symbol_to_index[ch_symbol] = i; } return i; } |