X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .
[{{mminutes}}:{{sseconds}}] Ожидаем начала...    
c
(0)       Используют 4 человека

Комментарии

Ни одного комментария.
Написать тут
Описание:
ccc
Автор:
Stan_Smith
Создан:
19 июля 2015 в 10:55
Публичный:
Нет
Тип словаря:
Тексты
Цельные тексты, разделяемые пустой строкой (единственный текст на словарь также допускается).
Содержание:
1 // Функция для последнего прохода при поразрядной сортировке чисел с плавающей точкой
template<class T>
void floatRadixLastPass (short Offset, long N, T *source, T *dest, long *count) {
T *sp;
long s, c, i, *cp;
uchar *bp;
2 long numNeg=0;
for(i=128;i<256;i++) numNeg += count[i];
3 s=numNeg;
cp = count;
for (i = 0; i < 128; ++i, ++cp) {
c = *cp;
*cp = s;
s += c;
}
4 // изменения, касающиеся обратного расположения отрицательных чисел.
s = count[255] = 0; //
cp = count+254; //
for (i = 254; i >= 128; --i, --cp) {//
*cp += s; // остальное - то же, что и в
s = *cp; // signedRadixLastPass
}
5 bp = (uchar *)source + Offset;
sp = source;
for (i = N; i > 0; --i, bp += sizeof(T) , ++sp) {
cp = count + *bp;
if (*bp<128) dest[ (*cp)++ ] = *sp;
else dest[ --(*cp) ] = *sp;
}
}
6 // поразрядная сортировка чисел с плавающей точкой
template<class T>
void floatRadixSort (T* &in, long N) {
T *out = new T[N];
ushort i;
7 long *counters = new long[sizeof(T)*256], *count;
createCounters(in, counters, N);
8 for (i=0; i<sizeof(T)-1; i++) {
count = counters + 256*i;
if ( count[0] == N ) continue;
radixPass (i, N, in, out,count);
swap(in, out);
}
count = counters + 256*i;
floatRadixLastPass (i, N, in, out,count);
9 delete in;
in = out;
delete counters;
}

Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена