के लिए हैश फ़ंक्शन वर्तमान में हम अपनी कक्षा में हैश फ़ंक्शन से निपट रहे हैं। हमारे प्रशिक्षक ने हमें हमारे कोड में इस्तेमाल किए गए दो की तुलना करने के लिए इंटरनेट पर हैश फ़ंक्शन के लिए कहा है।स्ट्रिंग
पहले एक:
int HashTable::hash (string word)
// POST: the index of entry is returned
{ int sum = 0;
for (int k = 0; k < word.length(); k++)
sum = sum + int(word[k]);
return sum % SIZE;
}
दूसरा:
int HashTable::hash (string word)
{
int seed = 131;
unsigned long hash = 0;
for(int i = 0; i < word.length(); i++)
{
hash = (hash * seed) + word[i];
}
return hash % SIZE;
}
कहाँ आकार 501 (हैश तालिका का आकार) है और इनपुट 20,000 शब्दों का एक पाठ फ़ाइल से आ रहा है।
मैंने कुछ कोड उदाहरणों के साथ this प्रश्न देखा लेकिन वास्तव में यह सुनिश्चित नहीं था कि हैश फ़ंक्शन में क्या देखना है। अगर मैं सही ढंग से समझता हूं, तो मेरे मामले में, हैश इनपुट (स्ट्रिंग) लेता है और स्ट्रिंग को एक संख्या निर्दिष्ट करने के लिए गणित की गणना करता है और उसे तालिका में सम्मिलित करता है। सूची को खोजने की गति बढ़ाने के लिए यह प्रक्रिया की जाती है?
यदि मेरा तर्क ध्वनि है, तो क्या किसी के पास एक अच्छा उदाहरण है या एक संसाधन है जिसमें एक अलग हैश फ़ंक्शन दिखा रहा है जिसमें स्ट्रिंग शामिल है? या यहां तक कि अपने स्वयं के कुशल हैश समारोह लिखने की प्रक्रिया भी।
तुम सिर्फ अपने प्रश्न का जवाब 2 प्रदान की है। – Pubby
आपके प्रशिक्षक आपको दो हैश फ़ंक्शंस का विश्लेषण करने के लिए कैसे कह सकता है जब उसने आपको हैश टेबल/फ़ंक्शंस के बारे में कुछ भी नहीं सिखाया है? –
"क्या किसी के पास कोई अच्छा उदाहरण या संसाधन है?" [हां।] (Http://en.wikipedia.org/wiki/Hash_function#Hash_function_algorithms) –