{"id":3189,"date":"2025-06-06T02:12:12","date_gmt":"2025-06-06T02:12:12","guid":{"rendered":"https:\/\/diznr.com\/?p=3189"},"modified":"2025-06-06T02:12:12","modified_gmt":"2025-06-06T02:12:12","slug":"gate-cseit-database-collision-in-hashing-collision-hashing","status":"publish","type":"post","link":"https:\/\/www.reilsolar.com\/pdf\/gate-cseit-database-collision-in-hashing-collision-hashing\/","title":{"rendered":"GATE CSEIT\/Database\/Collision in Hashing Hashing collision."},"content":{"rendered":"<p>GATE CSEIT\/Database\/Collision in Hashing Hashing collision.<\/p>\n<p>[fvplayer id=&#8221;292&#8243;]<\/p>\n<h3 data-start=\"0\" data-end=\"65\"><strong data-start=\"2\" data-end=\"63\">Hashing and Collision Handling in Databases (GATE CSE\/IT)<\/strong><\/h3>\n<h3 data-start=\"67\" data-end=\"95\"><strong data-start=\"70\" data-end=\"93\">\u00a0What is Hashing?<\/strong><\/h3>\n<p data-start=\"96\" data-end=\"292\">Hashing is a technique used in <strong data-start=\"127\" data-end=\"166\">database indexing &amp; data structures<\/strong> to store and retrieve data efficiently. It uses a <strong data-start=\"217\" data-end=\"234\">hash function<\/strong> to convert keys into a fixed-size address (hash value).<\/p>\n<p data-start=\"294\" data-end=\"329\"><strong data-start=\"297\" data-end=\"327\">Formula for Hash Function:<\/strong><\/p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\">h(K)=Kmod\u2009\u2009Mh(K) = K \\mod M<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mclose\">)<\/span><span class=\"mrel\">=<\/span><\/span><span class=\"base\"><span class=\"mord mathnormal\">K<\/span><\/span><span class=\"base\"><span class=\"mord\"><span class=\"mord mathrm\">mod<\/span><\/span><span class=\"mord mathnormal\">M<\/span><\/span><\/span><\/span><\/span><\/p>\n<p data-start=\"352\" data-end=\"360\">where:<\/p>\n<ul data-start=\"361\" data-end=\"428\">\n<li data-start=\"361\" data-end=\"376\"><strong data-start=\"363\" data-end=\"368\">K<\/strong> = Key<\/li>\n<li data-start=\"377\" data-end=\"428\"><strong data-start=\"379\" data-end=\"384\">M<\/strong> = Number of available slots (bucket size)<\/li>\n<\/ul>\n<p data-start=\"430\" data-end=\"537\"><strong data-start=\"433\" data-end=\"445\">Example:<\/strong> If we insert key <strong data-start=\"463\" data-end=\"469\">25<\/strong> into a hash table of size <strong data-start=\"496\" data-end=\"502\">10<\/strong> using <code data-start=\"509\" data-end=\"526\">h(K) = K mod 10<\/code>, we get:<\/p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\">h(25)=25mod\u2009\u200910=5h(25) = 25 \\mod 10 = 5<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord\">25<\/span><span class=\"mclose\">)<\/span><span class=\"mrel\">=<\/span><\/span><span class=\"base\"><span class=\"mord\">25<\/span><\/span><span class=\"base\"><span class=\"mord\"><span class=\"mord mathrm\">mod<\/span><\/span><span class=\"mord\">10<\/span><span class=\"mrel\">=<\/span><\/span><span class=\"base\"><span class=\"mord\">5<\/span><\/span><\/span><\/span><\/span><\/p>\n<p data-start=\"569\" data-end=\"603\">So, <strong data-start=\"573\" data-end=\"600\">25 is stored in index 5<\/strong>.<\/p>\n<h3 data-start=\"610\" data-end=\"651\"><strong data-start=\"613\" data-end=\"649\">\u00a0What is Collision in Hashing?<\/strong><\/h3>\n<p data-start=\"652\" data-end=\"798\">A <strong data-start=\"654\" data-end=\"667\">collision<\/strong> occurs when two keys produce the same hash value.<br data-start=\"717\" data-end=\"720\" \/>For example, if <strong data-start=\"736\" data-end=\"749\">25 and 35<\/strong> both hash to index <strong data-start=\"769\" data-end=\"774\">5<\/strong>, we have a collision.<\/p>\n<p data-start=\"800\" data-end=\"829\"><strong data-start=\"802\" data-end=\"827\">Why Collisions Occur?<\/strong><\/p>\n<ol data-start=\"830\" data-end=\"968\">\n<li data-start=\"830\" data-end=\"881\"><strong data-start=\"833\" data-end=\"860\">Limited number of slots<\/strong> in the hash table.<\/li>\n<li data-start=\"882\" data-end=\"932\"><strong data-start=\"885\" data-end=\"929\">Different keys hashing to the same index<\/strong>.<\/li>\n<li data-start=\"933\" data-end=\"968\"><strong data-start=\"936\" data-end=\"965\">Poor hash function choice<\/strong>.<\/li>\n<\/ol>\n<h3 data-start=\"975\" data-end=\"1016\"><strong data-start=\"978\" data-end=\"1014\">\u00a0Collision Handling Techniques<\/strong><\/h3>\n<h3 data-start=\"1018\" data-end=\"1068\"><strong data-start=\"1022\" data-end=\"1066\">\u00a0Open Addressing (Probing Techniques)<\/strong><\/h3>\n<p data-start=\"1069\" data-end=\"1138\">The key is placed in an alternative location if a collision occurs.<\/p>\n<h4 data-start=\"1140\" data-end=\"1169\"><strong data-start=\"1145\" data-end=\"1167\">(a) Linear Probing<\/strong><\/h4>\n<p data-start=\"1170\" data-end=\"1394\">\u00a0If a collision occurs, check the <strong data-start=\"1205\" data-end=\"1228\">next available slot<\/strong> (i.e., <span class=\"katex\"><span class=\"katex-mathml\">h(K)+ih(K) + i<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mclose\">)<\/span><span class=\"mbin\">+<\/span><\/span><span class=\"base\"><span class=\"mord mathnormal\">i<\/span><\/span><\/span><\/span>).<br data-start=\"1252\" data-end=\"1255\" \/><strong data-start=\"1257\" data-end=\"1269\">Example:<\/strong> If <code data-start=\"1273\" data-end=\"1277\">25<\/code> and <code data-start=\"1282\" data-end=\"1286\">35<\/code> both hash to index <strong data-start=\"1306\" data-end=\"1311\">5<\/strong>, store <code data-start=\"1319\" data-end=\"1323\">35<\/code> in <strong data-start=\"1327\" data-end=\"1332\">6<\/strong>.<br data-start=\"1333\" data-end=\"1336\" \/><strong data-start=\"1338\" data-end=\"1348\">Issue:<\/strong> Clustering (many keys get stored together).<\/p>\n<p data-start=\"1396\" data-end=\"1413\"><strong data-start=\"1399\" data-end=\"1411\">Formula:<\/strong><\/p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\">h(K,i)=(h(K)+i)mod\u2009\u2009Mh(K, i) = (h(K) + i) \\mod M<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mpunct\">,<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mclose\">)<\/span><span class=\"mrel\">=<\/span><\/span><span class=\"base\"><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mclose\">)<\/span><span class=\"mbin\">+<\/span><\/span><span class=\"base\"><span class=\"mord mathnormal\">i<\/span><span class=\"mclose\">)<\/span><\/span><span class=\"base\"><span class=\"mord\"><span class=\"mord mathrm\">mod<\/span><\/span><span class=\"mord mathnormal\">M<\/span><\/span><\/span><\/span><\/span><\/p>\n<h4 data-start=\"1451\" data-end=\"1483\"><strong data-start=\"1456\" data-end=\"1481\">(b) Quadratic Probing<\/strong><\/h4>\n<p data-start=\"1484\" data-end=\"1717\">\u00a0Checks the next available slot in a <strong data-start=\"1522\" data-end=\"1544\">quadratic sequence<\/strong> (<code data-start=\"1546\" data-end=\"1550\">i\u00b2<\/code>).<br data-start=\"1552\" data-end=\"1555\" \/><strong data-start=\"1557\" data-end=\"1569\">Example:<\/strong> If <code data-start=\"1573\" data-end=\"1577\">25<\/code> hashes to <strong data-start=\"1588\" data-end=\"1593\">5<\/strong>, the next checked slots are <strong data-start=\"1622\" data-end=\"1649\">(5+1\u00b2, 5+2\u00b2, 5+3\u00b2, &#8230;)<\/strong>.<br data-start=\"1650\" data-end=\"1653\" \/><strong data-start=\"1655\" data-end=\"1715\">Reduces clustering but may lead to secondary clustering.<\/strong><\/p>\n<p data-start=\"1719\" data-end=\"1736\"><strong data-start=\"1722\" data-end=\"1734\">Formula:<\/strong><\/p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\">h(K,i)=(h(K)+i2)mod\u2009\u2009Mh(K, i) = (h(K) + i^2) \\mod M<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mpunct\">,<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mclose\">)<\/span><span class=\"mrel\">=<\/span><\/span><span class=\"base\"><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mclose\">)<\/span><span class=\"mbin\">+<\/span><\/span><span class=\"base\"><span class=\"mord\"><span class=\"mord mathnormal\">i<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\"><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2<\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mclose\">)<\/span><\/span><span class=\"base\"><span class=\"mord\"><span class=\"mord mathrm\">mod<\/span><\/span><span class=\"mord mathnormal\">M<\/span><\/span><\/span><\/span><\/span><\/p>\n<h4 data-start=\"1776\" data-end=\"1805\"><strong data-start=\"1781\" data-end=\"1803\">(c) Double Hashing<\/strong><\/h4>\n<p data-start=\"1806\" data-end=\"1952\">\u00a0Uses <strong data-start=\"1813\" data-end=\"1835\">two hash functions<\/strong> to reduce clustering.<br data-start=\"1857\" data-end=\"1860\" \/><strong data-start=\"1862\" data-end=\"1874\">Example:<\/strong> If <code data-start=\"1878\" data-end=\"1889\">h1(K) = 5<\/code>, use a second function (<code data-start=\"1914\" data-end=\"1921\">h2(K)<\/code>) to determine the next slot.<\/p>\n<p data-start=\"1954\" data-end=\"1971\"><strong data-start=\"1957\" data-end=\"1969\">Formula:<\/strong><\/p>\n<p><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\">h(K,i)=(h1(K)+i\u00d7h2(K))mod\u2009\u2009Mh(K, i) = (h1(K) + i \\times h2(K)) \\mod M<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord mathnormal\">h<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mpunct\">,<\/span><span class=\"mord mathnormal\">i<\/span><span class=\"mclose\">)<\/span><span class=\"mrel\">=<\/span><\/span><span class=\"base\"><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">h<\/span><span class=\"mord\">1<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mclose\">)<\/span><span class=\"mbin\">+<\/span><\/span><span class=\"base\"><span class=\"mord mathnormal\">i<\/span><span class=\"mbin\">\u00d7<\/span><\/span><span class=\"base\"><span class=\"mord mathnormal\">h<\/span><span class=\"mord\">2<\/span><span class=\"mopen\">(<\/span><span class=\"mord mathnormal\">K<\/span><span class=\"mclose\">))<\/span><\/span><span class=\"base\"><span class=\"mord\"><span class=\"mord mathrm\">mod<\/span><\/span><span class=\"mord mathnormal\">M<\/span><\/span><\/span><\/span><\/span><\/p>\n<h3 data-start=\"2028\" data-end=\"2084\"><strong data-start=\"2032\" data-end=\"2082\">\u00a0Separate Chaining (Linked List in Buckets)<\/strong><\/h3>\n<p data-start=\"2085\" data-end=\"2352\">\u00a0Each slot in the hash table stores a <strong data-start=\"2124\" data-end=\"2139\">linked list<\/strong> of values.<br data-start=\"2150\" data-end=\"2153\" \/>\u00a0If multiple keys hash to the same index, they are stored in a <strong data-start=\"2217\" data-end=\"2232\">linked list<\/strong> at that index.<br data-start=\"2247\" data-end=\"2250\" \/><strong data-start=\"2252\" data-end=\"2264\">Example:<\/strong> If <code data-start=\"2268\" data-end=\"2272\">25<\/code> and <code data-start=\"2277\" data-end=\"2281\">35<\/code> both hash to <strong data-start=\"2295\" data-end=\"2300\">5<\/strong>, they are stored in a linked list at index <strong data-start=\"2344\" data-end=\"2349\">5<\/strong>.<\/p>\n<p data-start=\"2354\" data-end=\"2472\"><strong data-start=\"2356\" data-end=\"2370\">Advantage:<\/strong> Efficient for large hash tables.<br data-start=\"2403\" data-end=\"2406\" \/><strong data-start=\"2409\" data-end=\"2426\">Disadvantage:<\/strong> Increased memory usage due to linked lists.<\/p>\n<h3 data-start=\"2479\" data-end=\"2539\"><strong data-start=\"2482\" data-end=\"2537\">\u00a0Choosing the Best Collision Resolution Technique<\/strong><\/h3>\n<div class=\"overflow-x-auto contain-inline-size\">\n<table data-start=\"2541\" data-end=\"2896\">\n<thead data-start=\"2541\" data-end=\"2577\">\n<tr data-start=\"2541\" data-end=\"2577\">\n<th data-start=\"2541\" data-end=\"2554\"><strong data-start=\"2543\" data-end=\"2553\">Method<\/strong><\/th>\n<th data-start=\"2554\" data-end=\"2565\"><strong data-start=\"2556\" data-end=\"2564\">Pros<\/strong><\/th>\n<th data-start=\"2565\" data-end=\"2577\"><strong data-start=\"2567\" data-end=\"2575\">Cons<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"2614\" data-end=\"2896\">\n<tr data-start=\"2614\" data-end=\"2684\">\n<td><strong data-start=\"2616\" data-end=\"2634\">Linear Probing<\/strong><\/td>\n<td>Simple, easy to implement<\/td>\n<td>Causes clustering<\/td>\n<\/tr>\n<tr data-start=\"2685\" data-end=\"2758\">\n<td><strong data-start=\"2687\" data-end=\"2708\">Quadratic Probing<\/strong><\/td>\n<td>Reduces clustering<\/td>\n<td>May not find empty slots<\/td>\n<\/tr>\n<tr data-start=\"2759\" data-end=\"2820\">\n<td><strong data-start=\"2761\" data-end=\"2779\">Double Hashing<\/strong><\/td>\n<td>Avoids clustering<\/td>\n<td>Slightly complex<\/td>\n<\/tr>\n<tr data-start=\"2821\" data-end=\"2896\">\n<td><strong data-start=\"2823\" data-end=\"2844\">Separate Chaining<\/strong><\/td>\n<td>Handles collisions well<\/td>\n<td>Requires extra memory<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3 data-start=\"2903\" data-end=\"2965\"><strong data-start=\"2906\" data-end=\"2963\">\u00a0Example GATE Question (Hashing Collision Handling)<\/strong><\/h3>\n<p data-start=\"2967\" data-end=\"3133\"><strong data-start=\"2967\" data-end=\"2980\">Question:<\/strong> A hash function is defined as <strong data-start=\"3011\" data-end=\"3030\">h(K) = K mod 10<\/strong>. Given keys <strong data-start=\"3043\" data-end=\"3065\">23, 43, 13, 27, 33<\/strong>, insert them using <strong data-start=\"3085\" data-end=\"3103\">linear probing<\/strong> in a hash table of size 10.<\/p>\n<p data-start=\"3135\" data-end=\"3188\"><strong data-start=\"3135\" data-end=\"3148\">Solution:<\/strong><br data-start=\"3148\" data-end=\"3151\" \/><strong data-start=\"3154\" data-end=\"3165\">Step 1:<\/strong> Compute hash values.<\/p>\n<div class=\"overflow-x-auto contain-inline-size\">\n<table data-start=\"3190\" data-end=\"3558\">\n<thead data-start=\"3190\" data-end=\"3265\">\n<tr data-start=\"3190\" data-end=\"3265\">\n<th data-start=\"3190\" data-end=\"3196\">Key<\/th>\n<th data-start=\"3196\" data-end=\"3229\">Hash Value (<code data-start=\"3210\" data-end=\"3227\">h(K) = K mod 10<\/code>)<\/th>\n<th data-start=\"3229\" data-end=\"3265\">Placement (Using Linear Probing)<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"3306\" data-end=\"3558\">\n<tr data-start=\"3306\" data-end=\"3343\">\n<td>23<\/td>\n<td><code data-start=\"3313\" data-end=\"3328\">23 mod 10 = 3<\/code><\/td>\n<td>Slot <strong data-start=\"3336\" data-end=\"3341\">3<\/strong><\/td>\n<\/tr>\n<tr data-start=\"3344\" data-end=\"3402\">\n<td>43<\/td>\n<td><code data-start=\"3351\" data-end=\"3366\">43 mod 10 = 3<\/code><\/td>\n<td><strong data-start=\"3369\" data-end=\"3382\">Collision<\/strong> \u2192 Next slot <strong data-start=\"3395\" data-end=\"3400\">4<\/strong><\/td>\n<\/tr>\n<tr data-start=\"3403\" data-end=\"3461\">\n<td>13<\/td>\n<td><code data-start=\"3410\" data-end=\"3425\">13 mod 10 = 3<\/code><\/td>\n<td><strong data-start=\"3428\" data-end=\"3441\">Collision<\/strong> \u2192 Next slot <strong data-start=\"3454\" data-end=\"3459\">5<\/strong><\/td>\n<\/tr>\n<tr data-start=\"3462\" data-end=\"3499\">\n<td>27<\/td>\n<td><code data-start=\"3469\" data-end=\"3484\">27 mod 10 = 7<\/code><\/td>\n<td>Slot <strong data-start=\"3492\" data-end=\"3497\">7<\/strong><\/td>\n<\/tr>\n<tr data-start=\"3500\" data-end=\"3558\">\n<td>33<\/td>\n<td><code data-start=\"3507\" data-end=\"3522\">33 mod 10 = 3<\/code><\/td>\n<td><strong data-start=\"3525\" data-end=\"3538\">Collision<\/strong> \u2192 Next slot <strong data-start=\"3551\" data-end=\"3556\">6<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p data-start=\"3560\" data-end=\"3585\"><strong data-start=\"3562\" data-end=\"3583\">Final Hash Table:<\/strong><\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\"><span class=\"hljs-section\">Index:  0  1  2  3  4  5  6  7  8  9  <\/span><br \/>\n<span class=\"hljs-section\">Keys:  -  -  - 23 43 13 33 27  -  -  <\/span><br \/>\n<\/code><\/div>\n<\/div>\n<h3 data-start=\"3677\" data-end=\"3699\"><strong data-start=\"3680\" data-end=\"3697\">\u00a0Conclusion<\/strong><\/h3>\n<p data-start=\"3700\" data-end=\"4019\"><strong data-start=\"3703\" data-end=\"3762\">Hashing is essential for fast data access in databases.<\/strong><br data-start=\"3762\" data-end=\"3765\" \/><strong data-start=\"3768\" data-end=\"3831\">Collisions occur when multiple keys hash to the same index.<\/strong><br data-start=\"3831\" data-end=\"3834\" \/><strong data-start=\"3837\" data-end=\"3925\">Various techniques like open addressing &amp; separate chaining help resolve collisions.<\/strong><br data-start=\"3925\" data-end=\"3928\" \/><strong data-start=\"3931\" data-end=\"4017\">Choosing the right method depends on efficiency, memory, and clustering avoidance.<\/strong><\/p>\n<p data-start=\"4021\" data-end=\"4088\" data-is-last-node=\"\" data-is-only-node=\"\">Would you like <strong data-start=\"4036\" data-end=\"4084\">more examples or Python code implementations<\/strong>?<\/p>\n<p data-start=\"0\" data-end=\"100\">Here\u2019s a focused explanation on <strong data-start=\"32\" data-end=\"57\">Collisions in Hashing<\/strong>, tailored for <strong data-start=\"72\" data-end=\"99\">GATE CSE\/IT \u2013 Databases<\/strong>:<\/p>\n<hr data-start=\"102\" data-end=\"105\" \/>\n<h2 data-start=\"107\" data-end=\"133\">\ud83d\udd01 Collision in Hashing<\/h2>\n<h3 data-start=\"135\" data-end=\"162\">\ud83c\udfaf What is a Collision?<\/h3>\n<p data-start=\"164\" data-end=\"260\">A <strong data-start=\"166\" data-end=\"179\">collision<\/strong> occurs when <strong data-start=\"192\" data-end=\"214\">two different keys<\/strong> hash to the <strong data-start=\"227\" data-end=\"241\">same index<\/strong> in the hash table.<\/p>\n<blockquote data-start=\"262\" data-end=\"324\">\n<p data-start=\"264\" data-end=\"324\">Let <code data-start=\"268\" data-end=\"283\">h(k1) = h(k2)<\/code> but <code data-start=\"288\" data-end=\"297\">k1 \u2260 k2<\/code> \u2192 this is a <strong data-start=\"310\" data-end=\"323\">collision<\/strong>.<\/p>\n<\/blockquote>\n<p data-start=\"326\" data-end=\"402\">Hash collisions are <strong data-start=\"346\" data-end=\"360\">inevitable<\/strong> due to the <strong data-start=\"372\" data-end=\"396\">pigeonhole principle<\/strong> when:<\/p>\n<ul data-start=\"403\" data-end=\"466\">\n<li data-start=\"403\" data-end=\"466\">\n<p data-start=\"405\" data-end=\"466\">You have more possible input keys than table slots (buckets).<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"468\" data-end=\"471\" \/>\n<h2 data-start=\"473\" data-end=\"500\">\ud83e\udde0 Why Collisions Happen<\/h2>\n<ul data-start=\"502\" data-end=\"644\">\n<li data-start=\"502\" data-end=\"593\">\n<p data-start=\"504\" data-end=\"593\">The hash function maps <strong data-start=\"527\" data-end=\"549\">many possible keys<\/strong> into a <strong data-start=\"557\" data-end=\"592\">limited number of table indices<\/strong>.<\/p>\n<\/li>\n<li data-start=\"594\" data-end=\"644\">\n<p data-start=\"596\" data-end=\"644\">The same index may be assigned to multiple keys.<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"646\" data-end=\"649\" \/>\n<h2 data-start=\"651\" data-end=\"689\">\ud83d\udee0\ufe0f Collision Resolution Techniques<\/h2>\n<p data-start=\"691\" data-end=\"787\">To handle collisions, we use <strong data-start=\"720\" data-end=\"755\">collision resolution strategies<\/strong>. There are two main categories:<\/p>\n<hr data-start=\"789\" data-end=\"792\" \/>\n<h3 data-start=\"794\" data-end=\"837\">1. <strong data-start=\"801\" data-end=\"837\">Open Hashing (Separate Chaining)<\/strong><\/h3>\n<ul data-start=\"839\" data-end=\"1006\">\n<li data-start=\"839\" data-end=\"951\">\n<p data-start=\"841\" data-end=\"951\">Each slot in the hash table holds a <strong data-start=\"877\" data-end=\"892\">linked list<\/strong> (chain) of all elements whose keys hash to the same index.<\/p>\n<\/li>\n<li data-start=\"952\" data-end=\"1006\">\n<p data-start=\"954\" data-end=\"1006\"><strong data-start=\"954\" data-end=\"968\">No probing<\/strong> is needed; simply append to the list.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1008\" data-end=\"1096\"><strong data-start=\"1008\" data-end=\"1019\">Example<\/strong>:<br data-start=\"1020\" data-end=\"1023\" \/>If <code data-start=\"1026\" data-end=\"1045\">h(13) = h(27) = 6<\/code>, both keys are stored in a linked list at index 6.<\/p>\n<p data-start=\"1098\" data-end=\"1107\"><strong data-start=\"1098\" data-end=\"1106\">Pros<\/strong>:<\/p>\n<ul data-start=\"1108\" data-end=\"1174\">\n<li data-start=\"1108\" data-end=\"1130\">\n<p data-start=\"1110\" data-end=\"1130\">Simple to implement.<\/p>\n<\/li>\n<li data-start=\"1131\" data-end=\"1174\">\n<p data-start=\"1133\" data-end=\"1174\">Works well even when the load factor &gt; 1.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1176\" data-end=\"1185\"><strong data-start=\"1176\" data-end=\"1184\">Cons<\/strong>:<\/p>\n<ul data-start=\"1186\" data-end=\"1264\">\n<li data-start=\"1186\" data-end=\"1219\">\n<p data-start=\"1188\" data-end=\"1219\">Uses extra memory for pointers.<\/p>\n<\/li>\n<li data-start=\"1220\" data-end=\"1264\">\n<p data-start=\"1222\" data-end=\"1264\">Search time can increase with long chains.<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"1266\" data-end=\"1269\" \/>\n<h3 data-start=\"1271\" data-end=\"1314\">2. <strong data-start=\"1278\" data-end=\"1314\">Closed Hashing (Open Addressing)<\/strong><\/h3>\n<p data-start=\"1316\" data-end=\"1440\">All elements are stored <strong data-start=\"1340\" data-end=\"1370\">directly in the hash table<\/strong>. If a collision occurs, the algorithm searches for another open slot.<\/p>\n<h4 data-start=\"1442\" data-end=\"1470\">a) <strong data-start=\"1450\" data-end=\"1468\">Linear Probing<\/strong><\/h4>\n<p data-start=\"1471\" data-end=\"1503\"><code data-start=\"1471\" data-end=\"1503\">h(k, i) = (h(k) + i) mod m<\/code><\/p>\n<ul data-start=\"1504\" data-end=\"1562\">\n<li data-start=\"1504\" data-end=\"1562\">\n<p data-start=\"1506\" data-end=\"1562\">Check next slots one by one until an empty one is found.<\/p>\n<\/li>\n<\/ul>\n<h4 data-start=\"1564\" data-end=\"1595\">b) <strong data-start=\"1572\" data-end=\"1593\">Quadratic Probing<\/strong><\/h4>\n<p data-start=\"1596\" data-end=\"1639\"><code data-start=\"1596\" data-end=\"1639\">h(k, i) = (h(k) + c1*i + c2*i\u00b2) mod m<\/code><\/p>\n<ul data-start=\"1640\" data-end=\"1695\">\n<li data-start=\"1640\" data-end=\"1695\">\n<p data-start=\"1642\" data-end=\"1695\">Avoids clustering by probing in a non-linear pattern.<\/p>\n<\/li>\n<\/ul>\n<h4 data-start=\"1697\" data-end=\"1725\">c) <strong data-start=\"1705\" data-end=\"1723\">Double Hashing<\/strong><\/h4>\n<p data-start=\"1726\" data-end=\"1767\"><code data-start=\"1726\" data-end=\"1767\">h(k, i) = (h1(k) + i * h2(k)) mod m<\/code><\/p>\n<ul data-start=\"1768\" data-end=\"1825\">\n<li data-start=\"1768\" data-end=\"1825\">\n<p data-start=\"1770\" data-end=\"1825\">Uses a <strong data-start=\"1777\" data-end=\"1801\">second hash function<\/strong> to compute probe steps.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1827\" data-end=\"1836\"><strong data-start=\"1827\" data-end=\"1835\">Pros<\/strong>:<\/p>\n<ul data-start=\"1837\" data-end=\"1893\">\n<li data-start=\"1837\" data-end=\"1865\">\n<p data-start=\"1839\" data-end=\"1865\">No extra memory for lists.<\/p>\n<\/li>\n<li data-start=\"1866\" data-end=\"1893\">\n<p data-start=\"1868\" data-end=\"1893\">Better cache performance.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1895\" data-end=\"1904\"><strong data-start=\"1895\" data-end=\"1903\">Cons<\/strong>:<\/p>\n<ul data-start=\"1905\" data-end=\"1978\">\n<li data-start=\"1905\" data-end=\"1929\">\n<p data-start=\"1907\" data-end=\"1929\">More complex deletion.<\/p>\n<\/li>\n<li data-start=\"1930\" data-end=\"1978\">\n<p data-start=\"1932\" data-end=\"1978\">Performance degrades as load factor increases.<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"1980\" data-end=\"1983\" \/>\n<h2 data-start=\"1985\" data-end=\"2006\">\ud83d\udccf Load Factor (\u03b1)<\/h2>\n<p data-start=\"2007\" data-end=\"2022\"><code data-start=\"2007\" data-end=\"2022\">\u03b1 = n \/ m<\/code><\/p>\n<ul data-start=\"2023\" data-end=\"2084\">\n<li data-start=\"2023\" data-end=\"2057\">\n<p data-start=\"2025\" data-end=\"2057\"><code data-start=\"2025\" data-end=\"2028\">n<\/code>: number of elements stored<\/p>\n<\/li>\n<li data-start=\"2058\" data-end=\"2084\">\n<p data-start=\"2060\" data-end=\"2084\"><code data-start=\"2060\" data-end=\"2063\">m<\/code>: number of buckets<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2086\" data-end=\"2142\">For open addressing, performance drops sharply as \u03b1 \u2192 1.<\/p>\n<hr data-start=\"2144\" data-end=\"2147\" \/>\n<h2 data-start=\"2149\" data-end=\"2175\">\ud83e\uddea Example (GATE Level)<\/h2>\n<p data-start=\"2177\" data-end=\"2252\">Keys: <code data-start=\"2183\" data-end=\"2218\">10, 22, 31, 4, 15, 28, 17, 88, 59<\/code><br data-start=\"2218\" data-end=\"2221\" \/>Hash function: <code data-start=\"2236\" data-end=\"2252\">h(k) = k mod 9<\/code><\/p>\n<p data-start=\"2254\" data-end=\"2303\">Using <strong data-start=\"2260\" data-end=\"2278\">Linear Probing<\/strong>, fill a table of size 9:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none rounded-t-[5px]\">lua<\/div>\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\n<div class=\"bg-token-sidebar-surface-primary text-token-text-secondary dark:bg-token-main-surface-secondary flex items-center rounded-sm px-2 font-sans text-xs\"><button class=\"flex gap-1 items-center select-none px-4 py-1\" aria-label=\"Copy\">Copy<\/button><span class=\"\" data-state=\"closed\"><button class=\"flex items-center gap-1 px-4 py-1 select-none\">Edit<\/button><\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">h(<span class=\"hljs-number\">10<\/span>) = <span class=\"hljs-number\">1<\/span><br \/>\nh(<span class=\"hljs-number\">22<\/span>) = <span class=\"hljs-number\">4<\/span><br \/>\nh(<span class=\"hljs-number\">31<\/span>) = <span class=\"hljs-number\">4<\/span> \u2192 collision \u2192 <span class=\"hljs-built_in\">next<\/span> slot \u2192 <span class=\"hljs-number\">5<\/span><br \/>\nh(<span class=\"hljs-number\">4<\/span>)  = <span class=\"hljs-number\">4<\/span> \u2192 collision \u2192 <span class=\"hljs-built_in\">next<\/span> free slot \u2192 <span class=\"hljs-number\">6<\/span><br \/>\n...<br \/>\n<\/code><\/div>\n<\/div>\n<p data-start=\"2419\" data-end=\"2457\">This is a typical GATE-style question.<\/p>\n<hr data-start=\"2459\" data-end=\"2462\" \/>\n<h2 data-start=\"2464\" data-end=\"2479\">\ud83d\udcd8 GATE Tips<\/h2>\n<ul data-start=\"2481\" data-end=\"2698\">\n<li data-start=\"2481\" data-end=\"2527\">\n<p data-start=\"2483\" data-end=\"2527\">Understand each collision resolution method.<\/p>\n<\/li>\n<li data-start=\"2528\" data-end=\"2583\">\n<p data-start=\"2530\" data-end=\"2583\">Practice time complexity in best\/average\/worst cases.<\/p>\n<\/li>\n<li data-start=\"2584\" data-end=\"2639\">\n<p data-start=\"2586\" data-end=\"2639\">Know trade-offs between chaining and open addressing.<\/p>\n<\/li>\n<li data-start=\"2640\" data-end=\"2698\">\n<p data-start=\"2642\" data-end=\"2698\">Double hashing is often asked due to better performance.<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"2700\" data-end=\"2703\" \/>\n<p data-start=\"2705\" data-end=\"2805\" data-is-last-node=\"\" data-is-only-node=\"\">Would you like a <strong data-start=\"2722\" data-end=\"2737\">PDF summary<\/strong>, <strong data-start=\"2739\" data-end=\"2755\">MCQ practice<\/strong>, or a <strong data-start=\"2762\" data-end=\"2780\">visual diagram<\/strong> of collision resolution?<\/p>\n<h3 data-start=\"2705\" data-end=\"2805\"><a href=\"https:\/\/gatecse.in\/w\/images\/4\/4c\/Hashng.pdf\" target=\"_blank\" rel=\"noopener\">GATE CSEIT\/Database\/Collision in Hashing Hashing collision.<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a href=\"https:\/\/www2.isical.ac.in\/~malaybhattacharyya\/Courses\/In2ProgDS\/Fall2023\/Class%2025.pdf\" target=\"_blank\" rel=\"noopener\">Introduction to Programming and Data Structures &#8211; Hashing<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a href=\"https:\/\/www.jntua.ac.in\/gate-online-classes\/registration\/downloads\/material\/a159143764882.pdf\" target=\"_blank\" rel=\"noopener\">GATEONLINE CLASSES ON DATA STRUCTURES<\/a><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>GATE CSEIT\/Database\/Collision in Hashing Hashing collision. [fvplayer id=&#8221;292&#8243;] Hashing and Collision Handling in Databases (GATE CSE\/IT) \u00a0What is Hashing? Hashing is a technique used in database indexing &amp; data structures to store and retrieve data efficiently. It uses a hash function to convert keys into a fixed-size address (hash value). Formula for Hash Function: h(K)=Kmod\u2009\u2009Mh(K) [&hellip;]<\/p>\n","protected":false},"author":66,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77],"tags":[],"class_list":["post-3189","post","type-post","status-publish","format-standard","hentry","category-database"],"_links":{"self":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/3189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/comments?post=3189"}],"version-history":[{"count":0,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/3189\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/media?parent=3189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/categories?post=3189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/tags?post=3189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}