بنية البيانات 2 - مقارنة سريعة
هياكل البيانات — مقارنة سريعة (الجزء الثاني)
هياكل البيانات – مقارنة سريعة (الجزء الثاني) هياكل البيانات 2- المقارنة السريعة

مقارنة بين هياكل البيانات المختلفة — bigochheatsheet.com مقارنة بين هياكل البيانات المختلفة - bigochheatsheet.com
كل بنية بيانات لها طريقتها الخاصة المختلفة، أو خوارزمية مختلفة للفرز، والإدراج، والبحث، …إلخ. هذا يرجع إلى طبيعة بنية البيانات. هناك خوارزميات تستخدم مع بنية بيانات محددة، حيث لا يمكن استخدام بعضها الآخر. كل بنية بيانات لها طرقها أو خوارزمياتها المختلفة للفرز والإدراج والبحث وما إلى ذلك. ويرجع ذلك إلى طبيعة بنية البيانات. تحتوي بعض الخوارزميات على هياكل بيانات محددة لا يمكن للخوارزميات الأخرى استخدامها.
كلما كانت الخوارزمية أكثر كفاءة وملاءمة، كلما كان لديك بنية بيانات محسنة. كلما كانت الخوارزمية أكثر كفاءة وملاءمة، سيتم الحصول على هياكل بيانات أكثر تحسينًا.
من المحتمل أنك ستعتمد على الخوارزميات المضمنة المستخدمة مع هياكل البيانات بلغتك. تم تحسين هذه الخوارزميات بشكل جيد للغاية وتم اختبارها في المعركة. على الأرجح، ستعتمد على الخوارزميات المدمجة التي تعمل مع هياكل البيانات بلغتك. تم تحسين هذه الخوارزميات واختبارها بشكل جيد.
مصفوفة المصفوفات
الايجابيات المزايا
-
سهل الإنشاء، سهل الاستخدام، سهل الإنشاء، سهل الاستخدام
-
الفهرسة المباشرة: O(1) الفهرسة المباشرة: O(1)
-
الوصول المتسلسل: O(N) الوصول المتسلسل: O(N)
سلبيات عيوب
-
الفرز: O(NLogN) الفرز: O(NLogN)
-
البحث: O(N)، وO(LogN) إذا تم فرزها البحث: O(N) وO(LogN) إذا تم فرزها
-
الإدراج والحذف: O(N) بسبب تبديل العناصر.
قائمة مرتبطة قائمة مرتبطة
الايجابيات المزايا
-
الإدراج والحذف: س(١). الإدراج والحذف: O(1)
-
الوصول المتسلسل: O(N) الوصول المتسلسل: O(N)
يشير إدراج وحذف العمليات إلى العملية نفسها، حيث قد تحتاج إلى الوصول بشكل تسلسلي إلى جميع العقد حتى العقدة التي تبحث عنها.
يعد الإدراج والحذف أسهل بكثير باستخدام القائمة المرتبطة بشكل مضاعف.
سلبيات عيوب
-
لا يوجد وصول مباشر. الوصول التسلسلي فقط لا يوجد وصول مباشر. الوصول التسلسلي فقط.
-
البحث: O(N) البحث: O(N)
-
الفرز: O(NLogN) الفرز: O(NLogN)
الأكوام وقوائم الانتظار الأكوام وقوائم الانتظار
الأكوام وقوائم الانتظار لها أغراض محددة للغاية. الأكوام هي بنية البيانات التي تدخل أخيرًا تخرج أولاً (LIFO)، بينما تكون قوائم الانتظار أولًا ما يدخل أولاً يخرج أولاً (FIFO). تخدم الأكوام وقوائم الانتظار أغراضًا محددة جدًا. المكدس عبارة عن بنية بيانات يدخل أولاً يخرج أولاً (LIFO)، في حين أن قائمة الانتظار عبارة عن بنية بيانات يدخل أولاً يخرج أولاً (FIFO).
الايجابيات المزايا
- دفع/إضافة: O(1)
- فرقع/إزالة: O(1)
- نظرة خاطفة: يا (1)
سلبيات
إذا كنت تحاول القيام بأي شيء آخر باستخدام الأكوام أو قوائم الانتظار، كما لو كنت تسأل كيف يمكنني سحب عنصر من المنتصف؟. ثم، يجب أن تنظر إلى بنية بيانات مختلفة. إذا كنت تريد القيام بأي شيء آخر باستخدام المكدس أو قائمة الانتظار، كما لو كنت تريد معرفة كيفية استخراج عنصر من المنتصف؟ ثم يجب عليك إلقاء نظرة على هياكل البيانات المختلفة.
جداول التجزئة. جدول التجزئة
الايجابيات المزايا
-
الإدراج والحذف: O(1) + التجزئة والفهرسة (المطفأة). الإدراج والحذف: O(1) + التجزئة والفهرسة (المطفأة).
-
الوصول المباشر: O(1) + التجزئة والفهرسة. الوصول المباشر: O(1) + التجزئة والفهرسة.
يستغرق الأمر القليل من المعالجة للتجزئة والفهرسة. لكن الشيء الجيد في ذلك هو أنه يتم نفس القدر من المعالجة في كل مرة، حتى لو أصبح جدول التجزئة كبيرًا جدًا. تتطلب عملية التجزئة والفهرسة بعض المعالجة. لكن ميزة ذلك هي أن الرقم الذي تتم معالجته في كل مرة هو نفسه، حتى لو أصبح جدول التجزئة كبيرًا جدًا.
عندما يمتلئ جدول التجزئة، سيزيد حجمه. وعندما يكون عدد الدلاء المملوءة أصغر بكثير من حجم جدول التجزئة، فسيؤدي ذلك إلى تقليل حجمها. كلتا العمليتين تأخذان تعقيد O(N). لهذا السبب يتم إطفاء الإدراج والحذف O(1). عندما يمتلئ جدول التجزئة، فإنه يزيد حجمه. عندما يكون عدد الدلاء المملوءة أصغر بكثير من حجم جدول التجزئة، فهذا يقلل من حجمه. تعقيد كلتا العمليتين هو O(N). ولهذا السبب يتطلب الإدراج والحذف استهلاك O(1).
سلبيات عيوب
-
تتطلب بعض الحمل مساحة أكبر قليلاً في الذاكرة من المصفوفات. تتطلب بعض الحمل مساحة أكبر قليلاً في الذاكرة من المصفوفات.
-
استرجاع العناصر لا يضمن ترتيبًا محددًا. استرجاع العناصر لا يضمن ترتيبًا محددًا.
-
البحث عن قيمة (دون معرفة مفتاحها). البحث عن قيمة (دون معرفة مفتاحها).
مجموعات مجموعات
الايجابيات. المزايا
-
التحقق من العضوية. وجود القيمة. التحقق من العضوية؛ وجود القيمة.
-
يتجنب التكرارات تجنب الازدواجية
تعقيد التحقق مما إذا كانت القيمة الموجودة في المجموعة تعتمد على بنية البيانات الأساسية المستخدمة لتنفيذ المجموعة.
في C++، يستخدم شجرة بحث ثنائية (ربما شجرة سوداء حمراء؛ نوع من شجرة البحث الثنائية ذاتية التوازن). لذلك، سيكون التعقيد O(LogN)، وO(N) إذا كانت الشجرة غير متوازنة. التعقيد هو O(LogN) إذا كانت الشجرة غير متوازنة، يكون التعقيد O(N)
في Java، تقوم فئة HashSet بتنفيذ Set Interface باستخدام بنية بيانات جدول التجزئة. لذلك، سيكون التعقيد هو نفس جداول التجزئة (انظر أعلاه). في Java، تقوم فئة HashSet بتنفيذ واجهة Set باستخدام بنية بيانات جدول التجزئة. وبالتالي فإن التعقيد سيكون مماثلاً لجدول التجزئة (انظر أعلاه).
سلبيات
مجموعات محدودة عمدا. ليس هناك الكثير الذي يمكنك فعله معهم. لذا، فهم فظيعون في كل شيء آخر تقريبًا. المجموعات محدودة عمدا. لا يوجد شيء يمكنك القيام به حيالهم. لذا، فهم فظيعون في كل النواحي الأخرى تقريبًا.### أشجار البحث الثنائية (BST)
الايجابيات
- الإدراج والحذف
- سرعة الوصول
- يحافظ على الترتيب المفرز؛ استرجاع العناصر في محله.
سيكون تعقيد الإدراج والحذف والوصول هو O(LogN) وO(N) إذا كانت الشجرة غير متوازنة.
سلبيات
- بعض النفقات العامة بسبب إنشائها وإدارتها.
أكوام
الأكوام هي نوع من الأشجار الثنائية التي تعتبر رائعة بالنسبة لقوائم الانتظار ذات الأولوية. الأكوام هي نوع من الأشجار الثنائية التي تعتبر رائعة بالنسبة لقوائم الانتظار ذات الأولوية.
الايجابيات
- البحث عن الحد الأدنى/البحث عن الحد الأقصى: O(1)
- الإدراج: O(تسجيل الدخول)
- حذف الحد الأدنى/حذف الحد الأقصى: O(LogN)
سلبيات
- البحث والحذف: O(N)
في البحث والحذف، سيتعين علينا مسح جميع العناصر لأنها لا تضمن ترتيبًا محددًا، على عكس BST.
يتطلب الحذف اجتياز الشجرة بأكملها للوصول إلى العنصر أولاً، ثم حذفه، حيث تتطلب عملية الحذف نفسها O(LogN).
النص الأصلي: https://medium.com/omarelgabrys-blog/data-structures-a-quick-comparison-6689d725b3b0
What to read next
Want more posts about Algorithms?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Algorithms?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home