رسم خرائط الفهرسة

يصف تعيين الفهرس (أو العنونة المباشرة ، أو دالة التجزئة البسيطة ) في علوم الحاسوب استخدام مصفوفة ، حيث يتوافق كل موقع فيها مع مفتاح ضمن مجموعة القيم الممكنة. [ 1 ] تكون هذه التقنية أكثر فعالية عندما تكون مجموعة المفاتيح صغيرة نسبيًا، بحيث يكون تخصيص مصفوفة بموقع واحد لكل مفتاح ممكن أمرًا ممكنًا. وتكمن فعاليتها في إمكانية فحص أي موقع في المصفوفة في وقت ثابت .

المصفوفات القابلة للتطبيق

توجد أمثلة عملية عديدة لبيانات تقتصر قيمها الصالحة على نطاق ضيق. تُعدّ دالة التجزئة البسيطة خيارًا مناسبًا عندما تحتاج هذه البيانات إلى العمل كمفتاح بحث. ومن الأمثلة على ذلك:

  • شهر من السنة (1-12)
  • يوم من أيام الشهر (1-31)
  • أيام الأسبوع (1-7)
  • العمر البشري (0-130) – على سبيل المثال جداول اكتوارية التأمين على الحياة، الرهن العقاري ذو المدة المحددة
  • أحرف ASCII (من 0 إلى 127)، والتي تشمل رموز العمليات الرياضية الشائعة والأرقام وعلامات الترقيم وأبجدية اللغة الإنجليزية

أمثلة

إن استخدام دالة تجزئة بسيطة، في عملية بحث غير تكرارية في جدول، يمكن أن يلغي الاختبار الشرطي والتفرع تمامًا، مما يقلل من طول مسار التعليمات لبرنامج الكمبيوتر.

تجنب التفرع

يقدم روجر سايل مثالاً [ 2 ] على التخلص من التفرع متعدد الاتجاهات الناتج عن عبارة switch :

دالة منطقية مضمنة HasOnly30Days ( عدد صحيح m ) { switch ( m ) { case 4 : // أبريل case 6 : // يونيو case 9 : // سبتمبر case 11 : // نوفمبر return true ; default : return false ; } }

والتي يمكن استبدالها بالبحث في جدول:

دالة منطقية مضمنة HasOnly30Days ( عدد صحيح m ) { ثابت منطقي T [] = { 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 1 , 0 , 1 , 0 }; إرجاع T [ m - 1 ]; }

مراجع

  1. كورمن، توماس هـ. (2009). مقدمة في الخوارزميات (  الطبعة الثالثة). كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا. الصفحات 253-255 . ISBN  9780262033848تم الاطلاع عليه بتاريخ 26 نوفمبر 2015 .
  2. سايل، روجر أنتوني ( 17 يونيو 2008). "تحليل مُحسِّن فائق لتوليد كود الفروع متعددة الاتجاهات" (ملف PDF) . وقائع قمة مطوري GCC : 103-116 . تم الاطلاع عليه بتاريخ 26 نوفمبر 2015 .