इंडेक्स मैपिंग

From Vigyanwiki

कंप्यूटर विज्ञान में इंडेक्स मैपिंग (या डायरेक्ट एड्रेसिंग, या एक तुच्छ हैश फंकशन) एक सरणी डेटा संरचना का उपयोग करने का वर्णन करता है, जिसमें प्रत्येक स्थिति संभावित मूल्यों के ब्रह्मांड (गणित) में एक कुंजी से मेल खाती है।[1] तकनीक तब सबसे प्रभावी होती है जब कुंजियों का ब्रह्मांड यथोचित रूप से छोटा होता है, जैसे कि प्रत्येक संभावित कुंजी के लिए एक स्थिति के साथ एक सरणी का मेमोरी आवंटन किफायती होता है। इसकी प्रभावशीलता इस तथ्य से आती है कि किसी सरणी में एक मनमानी स्थिति की जांच समय जटिलता#स्थिर समय में की जा सकती है।

लागू सरणियाँ

डेटा के कई व्यावहारिक उदाहरण हैं जिनके वैध मान एक छोटी सीमा के भीतर प्रतिबंधित हैं। जब ऐसे डेटा को लुकअप कुंजी के रूप में कार्य करने की आवश्यकता होती है तो एक तुच्छ हैश फ़ंक्शन एक उपयुक्त विकल्प है। कुछ उदाहरणों में शामिल हैं:

  • वर्ष में महीना (1-12)
  • महीने में दिन (1-31)
  • सप्ताह का दिन (1-7)
  • मानव आयु (0-130)-उदा. लाइफकवर एक्चुअरी टेबल, निश्चित अवधि बंधक
  • ASCII वर्ण (0-127), जिसमें सामान्य गणितीय ऑपरेटर प्रतीक, अंक, विराम चिह्न और अंग्रेजी भाषा वर्णमाला शामिल हैं

उदाहरण

एक गैर-पुनरावृत्तीय तालिका लुकअप में, एक तुच्छ हैश फ़ंक्शन का उपयोग करके, सशर्त परीक्षण और शाखाकरण को पूरी तरह से समाप्त किया जा सकता है, जिससे कंप्यूटर प्रोग्राम की निर्देश पथ लंबाई कम हो सकती है।

शाखा लगाने से बचें

रोजर सैले एक उदाहरण देते हैं[2] स्विच कथन के कारण होने वाली मल्टीवे शाखा को समाप्त करना:

<सिंटैक्सहाइलाइट लैंग= सी++ > इनलाइन बूल hasOnly30Days(int m) { स्विच (एम) { केस 4: // अप्रैल केस 6: // जून केस 9: // सितंबर केस 11: // नवंबर सच लौटें; गलती करना: विवरण झूठा है; } } </सिंटैक्सहाइलाइट>

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

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