Набор Алгоритмов

Статья рассказывает концепцию алгоритма вычисления контрольной суммы (хеширования).

Алгоритмы - Алгоритмы хеширования (контрольной суммы)

1. Введение

Алгоритмы нахождения контрольной суммы данных (объекта) предназначены для того, чтобы дать данным более короткое представление для их сопоставления. При этом сопоставлении происходит потеря количества информации и возможны коллизии. Колизия — это, когда два и более разных объекта имеют одно значение котрольной суммы (хеша).

Для избежания воздействия коллизий при нахождении определённого элемента в коллекции его можно искать по хешу, но при этом поиске возможно найти два и более одинаковых объекта. Уже найденные объекты с одинаковой контрольной суммой можно сравнивать на эквивалентность.

2. Пример простейшего алгоритма нахождения контрольной суммы

В данном разделе приведён пример алгоритма нахождения контрольной суммы для строки текста. Но не забывайте, что алгоритм нахождения контрольной суммы в основном находится для бинарных данных или просто больших данных.

2.1. Описание алгоритма

Алгоритм основан на том, что:

Далее приводится реализация этого алгоритма на языках программирования C# и Java.

2.2. Пример кода алгоритма на языке C#

Пример алгоритмы получения контрольной суммы на C#:


    static public long HashCodeSample(string str)
    {
        long hashSum = 0;

        foreach (var chr in str)
            hashSum += (long)chr;

        return hashSum;
    }

2.3. Пример кода алгоритма на языке Java

Пример алгоритмы получения контрольной суммы на Java:


    public static long HashCodeSample(String str) {
        long hashSum = 0;

        for(int i = 0; i < str.length(); i++) {
            hashSum += (long)str.charAt(i);
        }

        return hashSum;
    }

3. Заключение

В заключение могу вам пожелать написание своих методов для вычисления контрольной суммы, как собственных алгоритмов, так и стандартов. Не забывайте развиваться!