इंडेक्स मैपिंग: Difference between revisions

From Vigyanwiki
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>
[[कंप्यूटर विज्ञान]] में '''इंडेक्स मैपिंग''' (या डायरेक्ट एड्रेसिंग, या ट्रिविअल [[हैश फंकशन]]) [[सरणी डेटा संरचना|ऐरे]] का उपयोग करने का वर्णन करता है, जिसमें प्रत्येक स्थिति संभावित मानों के [[ब्रह्मांड (गणित)|यूनिवर्स (गणित)]] की से मैच करती है।<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-12)
* महीने में [[दिन]] (1-31)
* मंथ में [[दिन|डे]] (1-31)
*[[सप्ताह का दिन]] (1-7)
*[[सप्ताह का दिन|वीक का डे]] (1-7)
*मानव आयु (0-130)-उदा. लाइफकवर ्चुअरी टेबल, निश्चित अवधि बंधक
*ह्यूमन ऐज (0-130) उदा. लाइफकवर एक्चुअरी टेबल, फिक्स्ड टर्म मॉर्गेज
* [[ASCII]] वर्ण (0-127), जिसमें सामान्य गणितीय ऑपरेटर प्रतीक, अंक, विराम चिह्न और अंग्रेजी भाषा वर्णमाला शामिल हैं
* [[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> [[ स्विच कथन ]] के कारण होने वाली [[मल्टीवे शाखा]] को समाप्त करना:
रोजर सैले [[ स्विच कथन |स्विच स्टेटमेंट]] के कारण होने वाली [[मल्टीवे शाखा|मल्टीवे ब्रांच]] <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
इनलाइन बूल hasOnly30Days(int m)
{
स्विच (एम) {
केस 4: // अप्रैल
केस 6: // जून
केस 9: // सितंबर
केस 11: // नवंबर
सच लौटें;
गलती करना:
विवरण झूठा है;
}
}
</सिंटैक्सहाइलाइट>


जिसे टेबल लुकअप से बदला जा सकता है:
case 11: // November


<सिंटैक्सहाइलाइट लैंग= सी++ >
          return true;
इनलाइन बूल hasOnly30Days(int m)
 
{
default:
स्टेटिक कॉन्स्ट बूल टी[] = {0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 };
 
वापसी टी[एम-1];
        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];
}

यह भी देखें

संदर्भ

  1. Cormen, Thomas H. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge, Mass.: MIT Press. pp. 253–255. ISBN 9780262033848. Retrieved 26 November 2015.
  2. Sayle, Roger Anthony (June 17, 2008). "मल्टीवे ब्रांच कोड जनरेशन का एक सुपरऑप्टिमाइज़र विश्लेषण" (PDF). Proceedings of the GCC Developers' Summit: 103–116. Retrieved 26 November 2015.