इंडेक्स मैपिंग: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{distinguish|text=[[Index map]], a finding aid in cartography}} | {{distinguish|text=[[Index map]], a finding aid in cartography}} | ||
[[कंप्यूटर विज्ञान]] में इंडेक्स मैपिंग (या डायरेक्ट एड्रेसिंग, या | [[कंप्यूटर विज्ञान]] में '''इंडेक्स मैपिंग''' (या डायरेक्ट एड्रेसिंग, या ट्रिविअल [[हैश फंकशन]]) [[सरणी डेटा संरचना|ऐरे]] का उपयोग करने का वर्णन करता है, जिसमें प्रत्येक स्थिति संभावित मानों के [[ब्रह्मांड (गणित)|यूनिवर्स (गणित)]] की से मैच करती है।<ref name=cormen>{{cite book|last1=Cormen|first1=Thomas H.|title=एल्गोरिदम का परिचय|date=2009|publisher=MIT Press|location=Cambridge, Mass.|isbn=9780262033848|pages=253–255|edition=3rd|url=https://mitpress.mit.edu/books/introduction-algorithms|accessdate=26 November 2015}}</ref>तकनीक तब सबसे प्रभावी होती है जब की का यूनिवर्स अधिक छोटा होता है, जैसे कि प्रत्येक संभावित की के लिए स्थिति के साथ ऐरे का मेमोरी आवंटन अफोर्डेबल होता है। इसकी प्रभावशीलता इस तथ्य से आती है कि किसी ऐरे में स्थिति का परीक्षण समय काम्प्लेक्स स्थिर समय में की जा सकती है। | ||
तकनीक तब सबसे प्रभावी होती है जब | |||
== | ==एप्लीकेबल ऐरे == | ||
डेटा के कई व्यावहारिक उदाहरण हैं जिनके वैध मान | डेटा के कई व्यावहारिक उदाहरण हैं जिनके वैध मान छोटी सीमा के भीतर प्रतिबंधित हैं। जब ऐसे डेटा को लुकअप की के रूप में कार्य करने की आवश्यकता होती है तो ट्रिविअल हैश फ़ंक्शन उपयुक्त विकल्प है। कुछ उदाहरणों में सम्मिलित हैं: | ||
* | *इयर में [[महीना|मंथ]] (1-12) | ||
* | * मंथ में [[दिन|डे]] (1-31) | ||
*[[सप्ताह का दिन]] (1-7) | *[[सप्ताह का दिन|वीक का डे]] (1-7) | ||
* | *ह्यूमन ऐज (0-130) उदा. लाइफकवर एक्चुअरी टेबल, फिक्स्ड टर्म मॉर्गेज | ||
* [[ASCII]] | * [[ASCII|एएससीआईआई]] करैक्टर (0-127), जिसमें सामान्य गणितीय ऑपरेटर प्रतीक, अंक, विराम चिह्न और अंग्रेजी लैंग्वेज करैक्टर सम्मिलित हैं। | ||
==उदाहरण== | ==उदाहरण== | ||
गैर-पुनरावृत्तीय | गैर-पुनरावृत्तीय टेबल लुकअप में, ट्रिविअल हैश फ़ंक्शन का उपयोग करके, कंडीशनल परीक्षण और ब्रांचिंग को पूर्ण रूप से समाप्त किया जा सकता है, जिससे कंप्यूटर प्रोग्राम की निर्देश पथ लंबाई कम हो सकती है। | ||
=== | ===अवॉयड ब्रांचिंग === | ||
रोजर सैले | रोजर सैले [[ स्विच कथन |स्विच स्टेटमेंट]] के कारण होने वाली [[मल्टीवे शाखा|मल्टीवे ब्रांच]] <ref>{{cite journal|last1=Sayle|first1=Roger Anthony|title=मल्टीवे ब्रांच कोड जनरेशन का एक सुपरऑप्टिमाइज़र विश्लेषण|journal=Proceedings of the GCC Developers' Summit|date=June 17, 2008|pages=103–116|url=https://www.nextmovesoftware.com/technology/SwitchOptimization.pdf|accessdate=26 November 2015}}</ref>को समाप्त करने का उदाहरण देते हैं: | ||
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]; | |||
} | |||
==यह भी देखें== | ==यह भी देखें== | ||
* [[सहयोगी सरणी]] | * [[सहयोगी सरणी|एस्सोसीटिव ऐरे]] | ||
* [[हैश तालिका]] | * [[हैश तालिका|हैश टेबल]] | ||
* [[तालिका देखो]] | * [[तालिका देखो|लुकउप]] [[तालिका देखो|टेबल]] | ||
==संदर्भ== | ==संदर्भ== |
Revision as of 22:51, 5 August 2023
कंप्यूटर विज्ञान में इंडेक्स मैपिंग (या डायरेक्ट एड्रेसिंग, या ट्रिविअल हैश फंकशन) ऐरे का उपयोग करने का वर्णन करता है, जिसमें प्रत्येक स्थिति संभावित मानों के यूनिवर्स (गणित) की से मैच करती है।[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.