it-swarm.asia

ما هي الاختلافات بين أشجار المقاطع والأشجار؟

ما هي الاختلافات بين أشجار المقاطع والأشجار الفاصلة والأشجار المفهرسة الثنائية وأشجار النطاق من حيث:

  • الفكرة الرئيسية/التعريف
  • تطبيقات
  • الأداء/الترتيب في أبعاد أعلى/استهلاك المساحة

من فضلك لا تعطي فقط التعاريف.

171
Aditya

يتم استخدام كل هياكل البيانات هذه لحل المشكلات المختلفة:

  • شجرة الشريحة تخزن الفواصل الزمنية ، وتم تحسينها من أجل "أي من هذه الفواصل الزمنية تحتوي على نقطة معينة".
  • الفاصل الزمني شجرة يخزن الفواصل كذلك ، ولكن الأمثل ل "أي من هذه الفواصل الزمنية تتداخل مع فاصل زمني معين". يمكن استخدامه أيضًا لاستعلامات النقاط - على غرار شجرة المقاطع.
  • نطاق الشجرة يخزن النقاط ، ويتم تحسينه لاستعلامات "التي تقع النقاط ضمن فاصل زمني محدد".
  • شجرة مفهرسة ثنائية تقوم بتخزين عدد العناصر لكل فهرس ، وتحسينها من أجل "عدد العناصر الموجودة بين استعلامات الفهرس m و n".

الأداء/استهلاك الفضاء لبعد واحد:

  • شجرة المقطع - وقت المعالجة المسبق لـ O (n logn) ووقت الاستعلام O (k + logn) ومساحة O (n logn)
  • شجرة الفاصل الزمني - O (n logn) وقت المعالجة ، O (k + logn) وقت الاستعلام ، O(n) مسافة
  • شجرة المدى - O (n logn) وقت المعالجة ، O (k + logn) وقت الاستعلام ، O(n) مسافة
  • شجرة مفهرسة ثنائية - وقت المعالجة المسبق لـ O (n logn) ، O(logn) وقت الاستعلام ، O(n) مسافة

(ك هو عدد النتائج المبلغ عنها).

يمكن أن تكون جميع هياكل البيانات ديناميكية ، بمعنى أن سيناريو الاستخدام يتضمن كل من تغييرات البيانات والاستعلامات:

  • شجرة المقطع - يمكن إضافة/حذف الفاصل الزمني في O(logn) الوقت (انظر هنا )
  • الفاصل الزمني شجرة - الفاصل الزمني يمكن أن تضاف/حذف في O(logn) الوقت
  • شجرة النطاق - يمكن إضافة/حذف نقاط جديدة في O(logn) الوقت (انظر هنا )
  • شجرة مفهرسة ثنائية - يمكن زيادة عدد العناصر لكل فهرس في O(logn)

أبعاد أعلى (د> 1):

  • شجرة الشريحة - O (n (logn) ^ d) وقت المعالجة المسبق ، O (k + (logn) ^ d) وقت الاستعلام ، O (n (logn) ^ (d-1))
  • شجرة الفاصل الزمني - O (n logn) وقت المعالجة ، O (k + (logn) ^ d) وقت الاستعلام ، O (n logn)
  • شجرة النطاق - O (n (logn) ^ d) وقت المعالجة المسبق ، O (k + (logn) ^ d) وقت الاستعلام ، O (n (logn) ^ (d-1))) المساحة
  • شجرة مفهرسة ثنائية - O (n (log)) ^ d) وقت المعالجة المسبق ، O ((logn) ^ d) وقت الاستعلام ، O (n (logn) ^ d)
275
Lior Kogan

لا أستطيع أن أضيف أي شيء إلى إجابة ليئور ، ولكن يبدو أنه يمكن أن يفعل مع طاولة جيدة.

بعد واحد

k هو عدد النتائج المبلغ عنها

|              | Segment       | Interval   | Range          | Indexed   |
|--------------|--------------:|-----------:|---------------:|----------:|
|Preprocessing |        n logn |     n logn |         n logn |    n logn |
|Query         |        k+logn |     k+logn |         k+logn |      logn |
|Space         |        n logn |          n |              n |         n |
|              |               |            |                |           |
|Insert/Delete |          logn |       logn |           logn |      logn |

أبعاد أعلى

d > 1

|              | Segment       | Interval   | Range          | Indexed   |
|--------------|--------------:|-----------:|---------------:|----------:|
|Preprocessing |     n(logn)^d |     n logn |      n(logn)^d | n(logn)^d |
|Query         |    k+(logn)^d | k+(logn)^d |     k+(logn)^d |  (logn)^d |
|Space         | n(logn)^(d-1) |     n logn | n(logn)^(d-1)) | n(logn)^d |

يتم إنشاء هذه الجداول في Github Formatted Markdown - راجع Gist إذا كنت تريد الصور.

20
icc97