Увод у функцију лежања у Ц
Овај чланак има кратку напомену о хасхингу (хасх табела и хасх функција). Најважнији концепт је 'тражење' које одређује сложеност времена. Да би се смањила временска сложеност од било ког другог уведена је концепција распршивања структуре података која у просечном случају има О (1), а у најгорем случају требаће О (н) време.
Хасхинг је техника са бржим приступом елементима који мапирају дане податке са мањим кључем за поређење. Генерално, у овој техници, кључеви се помоћу хасх функције прате у табели познатој као хасх табела.
Шта је Хасх функција?
Хасх функција је функција која користи операцију сталног времена за спремање и преузимање вриједности из хасх таблице, која се на типке примјењује као цијели бројеви и која се користи као адреса за вриједности у хасх табели.
Врсте функционисања
Ниже су објашњене врсте хасх функција:
1. Метода поделе
У овом методу, хасх функција зависи од остатка поделе.
Пример: елементи који треба да се ставе у хасх табелу су 42, 78, 89, 64 и узмимо величину табеле као 10.
Хасх (тастер) = Елементи% величине табеле;
2 = 42% 10;
8 = 78% 10;
9 = 89% 10;
4 = 64% 10;
Приказ табеле може се видети као доле:
2. Метода средњег квадрата
У овој методи се средњи део квадратног елемента узима као индекс.
Елемент који треба да се постави у хеш табелу је 210, 350, 99, 890, а величина табеле је 100.
210 * 210 = 44100, индекс = 1 јер је средњи део резултата (44100) 1.
350 * 350 = 122500, индекс = 25 јер је средњи део резултата (122500) 25.
99 * 99 = 9801, индекс = 80 јер је средњи део резултата (9801) 80.
890 * 890 = 792100, индекс = 21 јер је средњи део резултата (792100) 21.
3. Начин савијања цифара
У овој методи елемент који се налази у табели ух је певање хасх кључа, који се добија дељењем елемената у различите делове, а затим комбиновањем делова извођењем неких једноставних математичких операција.
Елемент који треба да се постави је 23576623, 34687734.
- хасх (кључ) = 235 + 766 + 23 = 1024
- хасх кључ) = 34 + 68 + 77 + 34 = 213
Претпоставимо да у овим врстама хасх-а имамо бројеве од 1- 100 и величину хасх табеле = 10. Елементи = 23, 12, 32
Хасх (тастер) = 23% 10 = 3;
Хасх (тастер) = 12% 10 = 2;
Хасх (тастер) = 32% 10 = 2;
Из горњег примјера примјетите да оба елемента 12 и 32 упућују на 2. мјесто у табели, гдје није могуће написати оба на истом мјесту, такав проблем је познат и као колизија. Да би се избегли овакви проблеми постоје неке технике хасх функција које се могу користити.
Врсте техника решавања судара
Хајде да разговарамо о врстама техника решавања судара:
1. Везивање
У овој методи, као што име сугерира, пружа ланац кутија за запис у табели који садржи два уноса елемената. Дакле, кад год се догоди такав судар, оквири ће се понашати као повезана листа.
Пример: 23, 12, 32 са величином стола 10.
Хасх (тастер) = 23% 10 = 3;
Хасх (тастер) = 12% 10 = 2;
Хасх (тастер) = 32% 10 = 2;
2. Отворите Адресирање
- Линеарно сондирање
Ово је још једна метода за решавање проблема судара. Као што име каже кад год се догоди судар, два елемента треба ставити на исти унос у табели, али овом методом можемо тражити следећи празан простор или унос у табели и поставити други елемент. Ово опет може довести до другог проблема; ако у табели не нађемо празан унос, онда то води у груписање. Стога је ово познато као проблем кластера, који се може решити следећом методом.
Пример: 23, 12, 32 са величином стола 10
Хасх (тастер) = 23% 10 = 3;
Хасх (тастер) = 12% 10 = 2;
Хасх (тастер) = 32% 10 = 2;
На овом дијаграму 12 и 32 могу се ставити у исти унос са индексом 2, али се овим поступком постављају линеарно.
- Квадратно сондирање
Ова метода је решење проблема кластера током линеарног сондирања. У овом се методу хасх функција с хасх кључем израчунава као хасх (типка) = (хасх (типка) + к * к)% величине таблице (гдје је к = 0, 1, 2…).
Пример: 23, 12, 32 са величином стола 10
Хасх (тастер) = 23% 10 = 3;
Хасх (тастер) = 12% 10 = 2;
Хасх (тастер) = 32% 10 = 2;
У овоме можемо видети да се 23 и 12 могу лако поставити, али 32 не могу опет 12 и 32 да исти унос са истим индексом у табели, по овом методу хасх (тастер) = (32 + 1 * 1) % 10 = 3. Али у овом случају унос у табелу са индексом 3 поставља се са 23, тако да морамо вредност к повећати за 1. Хасх (тастер) = (32 + 2 * 2)% 10 = 6. Дакле, сада можемо да поставимо 32 уноса са индексом 6 у табели.
- Двоструко мешање
Овом методом морамо израчунати 2 хасх функције да бисмо решили проблем судара. Прва се израчунава помоћу једноставне методе поделе. Друго мора да задовољи два правила; не смије бити једнак 0 и уноси се морају испитивати.
- 1 (тастер) = тастер% величине табеле.
- 2 (тастер) = п - (тастер мод п), где је п главни бројеви <величина табеле.
Пример: 23, 12, 32 са величином стола 10
Хасх (тастер) = 23% 10 = 3;
Хасх (тастер) = 12% 10 = 2;
Хасх (тастер) = 32% 10 = 2;
У овом случају се елемент 32 може поставити помоћу хасх2 (тастер) = 5 - (32% 5) = 3. Дакле, 32 се може поставити у индекс 5 у табели која је празна јер морамо прескочити 3 уноса да бисмо је поставили.
Закључак - Функција хеширања у Ц
Хасхинг је једна од важних техника у погледу претраживања података који се пружају врло ефикасним и брзим методама помоћу хасх функција и хасх табела. Сваки елемент се може претраживати и поставити помоћу различитих метода распршивања. Ова техника је веома брза од било које друге структуре података у погледу временског коефицијента.
Препоручени чланци
Ово је водич за функцију Хасхинг у Ц. Овде смо расправљали о увођењу Хасхинг функције у Ц, шта је Хасх функција, типови хасх функције итд. Такође можете проћи кроз остале предложене чланке да бисте сазнали више -
- Хасхинг у ДБМС-у
- Процес шифрирања
- Како инсталирати ЦакеПХП?
- Како функционише Блоцкцхаин
- Функција хеширања на Јави
- Хасхинг функција у ПХП | Како радити?