इंडेक्स मैपिंग
कंप्यूटर विज्ञान में इंडेक्स मैपिंग (या डायरेक्ट एड्रेसिंग, या ट्रिविअल हैश फंकशन) ऐरे का उपयोग करने का वर्णन करता है, जिसमें प्रत्येक स्थिति पॉसिबल मानों के यूनिवर्स (गणित) की से मैच करती है।[1]टेक्निक तब सबसे प्रभावी होती है जब की का यूनिवर्स अधिक छोटा होता है, जैसे कि प्रत्येक पॉसिबल की के लिए स्थिति के साथ ऐरे का मेमोरी आवंटन अफोर्डेबल होता है। इसकी प्रभावशीलता इस तथ्य से आती है कि किसी ऐरे में आर्बिटरी स्थिति का परीक्षण कांस्टेंट टाइम में किया जा सकता है।
एप्लीकेबल ऐरे
डेटा के कई व्यावहारिक उदाहरण हैं जिनके वैध मान छोटी सीमा के अंदर प्रतिबंधित हैं। जब ऐसे डेटा को लुकअप की के रूप में कार्य करने की आवश्यकता होती है तो ट्रिविअल हैश फ़ंक्शन उपयुक्त विकल्प है। कुछ उदाहरणों में सम्मिलित हैं:
- इयर में मंथ (1-12)
- मंथ में डे (1-31)
- वीक का डे (1-7)
- ह्यूमन ऐज (0-130) उदा. लाइफकवर एक्चुअरी टेबल, फिक्स्ड टर्म मॉर्गेज
- एएससीआईआई करैक्टर (0-127), जिसमें सामान्य गणितीय ऑपरेटर प्रतीक, अंक, विराम चिह्न और अंग्रेजी लैंग्वेज करैक्टर सम्मिलित हैं।
उदाहरण
गैर-पुनरावृत्तीय टेबल लुकअप में, ट्रिविअल हैश फ़ंक्शन का उपयोग करके, कंडीशनल परीक्षण और ब्रांचिंग को पूर्ण रूप से समाप्त किया जा सकता है, जिससे कंप्यूटर प्रोग्राम की निर्देश पथ लंबाई कम हो सकती है।
अवॉयड ब्रांचिंग
रोजर सैले स्विच स्टेटमेंट के कारण होने वाली मल्टीवे ब्रांच [2]को समाप्त करने का उदाहरण देते हैं:
inline bool HasOnly30Days(int m) { switch (m) { case 4: // April case 6: // June
case 9: // September
case 11: // November
return true;
default:
return false;
}
}
जिसे टेबल लुकअप से परिवर्तित किया जा सकता है:
inline bool HasOnly30Days(int m)
{
static const bool T[] = { 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 };
return T[m-1];
}
यह भी देखें
संदर्भ
- ↑ Cormen, Thomas H. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge, Mass.: MIT Press. pp. 253–255. ISBN 9780262033848. Retrieved 26 November 2015.
- ↑ Sayle, Roger Anthony (June 17, 2008). "मल्टीवे ब्रांच कोड जनरेशन का एक सुपरऑप्टिमाइज़र विश्लेषण" (PDF). Proceedings of the GCC Developers' Summit: 103–116. Retrieved 26 November 2015.