Skip to content

Commit 402e0ac

Browse files
committed
closed hashing/ Quadratic Probing
1 parent cc3cb5f commit 402e0ac

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed
81 KB
Loading

Hash/Quadratic Probing/main.c

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
2+
#include <stdio.h>
3+
#define SIZE 10
4+
5+
int hash(int key){
6+
return key %10;
7+
}
8+
9+
int prob(int HT[] , int key){
10+
int index = hash(key);
11+
int i = 0;
12+
while(HT[(index + i^2) % SIZE] != 0){
13+
i++;
14+
}
15+
16+
return (index + i^2)%SIZE;
17+
}
18+
19+
int Insert(int HT[] , int key){
20+
int index = hash(key);
21+
22+
// already occupied
23+
if(HT[index]!= 0){
24+
index = prob(HT , key);
25+
}
26+
27+
HT[index] = key;
28+
}
29+
30+
int Search(int HT[] , int key){
31+
int index = hash(key);
32+
int i = 0;
33+
// blanck space nhi huna chahiye
34+
while(HT[(index + i^2) % SIZE] != 0){
35+
while(HT[(index + i^2) % SIZE] != key){
36+
return (index + i^2) % SIZE;
37+
}
38+
i++;
39+
}
40+
41+
return -1;
42+
}
43+
44+
void display(int HT[]){
45+
int i;
46+
for(i = 0 ; i < SIZE ; i++){
47+
if(HT[i]!= 0){
48+
printf("HT[%d] -> %d \n",i , HT[i]);
49+
}
50+
}
51+
}
52+
53+
int main()
54+
{
55+
int HT[10] = {0};
56+
57+
Insert(HT , 23);
58+
Insert(HT , 43);
59+
Insert(HT , 13);
60+
Insert(HT , 27);
61+
62+
display(HT);
63+
// Searching for keys
64+
printf("\nSearch 20: %d\n", Search(HT, 20)); // Should return the index where 20 is stored
65+
printf("Search 23: %d\n", Search(HT, 23)); // Should return the index where 25 is stored
66+
printf("Search 50: %d\n", Search(HT, 50)); // Should return -1 (not found)
67+
68+
return 0;
69+
}
67 KB
Loading

0 commit comments

Comments
 (0)