Форматирование

This commit is contained in:
Alexander Zhirov 2025-09-05 02:45:02 +03:00
parent 4e7f7ecd60
commit 57f9ada9c9
Signed by: alexander
GPG key ID: C8D8BE544A27C511

View file

@ -42,7 +42,7 @@ FastCDC использует три основных улучшения для
### Шаг 4: Как Работает Алгоритм — Пошагово ### Шаг 4: Как Работает Алгоритм — Пошагово
1. **Подготовка**: Взять буфер данных (файл как массив байт, длиной n). Установить параметры. Инициализировать хэш (fp = 0) и позицию (i = MinSize — для пропуска мелких фрагментов). 1. **Подготовка**: Взять буфер данных (файл как массив байт, длиной n). Установить параметры. Инициализировать хэш (fp = 0) и позицию (i = MinSize — для пропуска мелких фрагментов).
2. **Проверка краёв**: Если n ≤ MinSize — весь буфер считается одним чанком. Если n > MaxSize — обрезать до MaxSize. Если n < avg установить avg = n. 2. **Проверка краёв**: Если n ≤ MinSize — весь буфер считается одним чанком. Если n > MaxSize — обрезать до MaxSize. Если n < avg установить avg = n.
3. **Цикл для маленьких чанков (до avg, строгая маска)**: 3. **Цикл для маленьких чанков (до avg, строгая маска)**:
@ -91,10 +91,10 @@ ulong fastcdc(ubyte[] src, size_t n, size_t minSize, size_t maxSize, size_t norm
if (n <= minSize) return n; if (n <= minSize) return n;
if (n > maxSize) n = maxSize; if (n > maxSize) n = maxSize;
if (n < normalSize) normalSize = n; if (n < normalSize) normalSize = n;
ulong fp = 0; ulong fp = 0;
size_t i = minSize; // Пропуск мелких size_t i = minSize; // Пропуск мелких
// Цикл до normalSize (строгая маска) // Цикл до normalSize (строгая маска)
while (i < normalSize) { while (i < normalSize) {
fp = (fp << 1) + gear[src[i]]; fp = (fp << 1) + gear[src[i]];
@ -103,7 +103,7 @@ ulong fastcdc(ubyte[] src, size_t n, size_t minSize, size_t maxSize, size_t norm
} }
i++; i++;
} }
// Цикл после (слабая маска) // Цикл после (слабая маска)
while (i < n) { while (i < n) {
fp = (fp << 1) + gear[src[i]]; fp = (fp << 1) + gear[src[i]];
@ -112,7 +112,7 @@ ulong fastcdc(ubyte[] src, size_t n, size_t minSize, size_t maxSize, size_t norm
} }
i++; i++;
} }
return n; // Достигнут max return n; // Достигнут max
} }
``` ```