Форматирование
This commit is contained in:
parent
4e7f7ecd60
commit
57f9ada9c9
1 changed files with 5 additions and 5 deletions
10
README.md
10
README.md
|
@ -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
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue