39.37 model_0s/find_new_position_for.h

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