Hash/Rehash datu kopām
Izstrādājot uzdevumu tiek izveidots rehešēšanas algoritms. Situācijā, kad veicot hash funkciju rodas kolīzija, tad vērtība tiek ievietota nākamajā brīvajā ailē tabulā. Ja tabula ir beigusies, tad turpinām veikt šo procesu no tabulas sākuma. Ja vēlreiz tiek sasniegtas tabulas beigas, tātad tabula ir pilna un nav, kur ievietot šo vērtību. Lai veiktu rehešēšanu tiek izpildīti šādi soļi:
1. Funkcija paņem vārdu kā ievadi;
2. Tā iziet cauri vārdam pa četriem baitiem un interpretē katru 4 baitu kopumu kā vienu long integer vērtību. Integer vērtības tiek saskaitītas.
3. Beigās summa ir pārvērsta robežās no 0 līdz m-1 izmantojot moduļa operatoru.
4. Pārbaudām šo adresi un salīdzinām adreses vērtību ar meklēto, ja vērtības sakrīt, tad esam atraduši adresi;
5. Ja vērtības nesakrīt pārbaudām visas nākamās adreses tabulā, kamēr atrodam meklēto vai kamēr sasniedzam tukšu aili, kas nozīmē, ka vērtība nav atrodama tabulā, vai kamēr sasniedzam tabulas beigas;
6. Ja sasniedzam tabulas beigas, tad atgriežamies uz tabulas 0-to adresi un turpinām darīt to, ko darījām 5. solī;
7. Ja vēlreiz tiek sasniegtas tabulas beigas, tātad tabula ir pilna un šajā tabulā nav meklētās vērtības.
Visbeidzot tiek izpildīts pats algoritms pilnībā, trīs programmēšanas valodām – Java, Python un ruby. Šo programmēšanas valodu tabulas tiek attēlotas zemāk, pēc algoritma izpildes.
…