فرز الكومة في هياكل البيانات: سهولة الاستخدام والأداء
نشرت: 2020-11-23الفرز هو عملية ترتيب الكيانات بترتيب معين ، أي ترتيب تصاعدي أو تنازلي أو أبجدي. يتعلق فرز بنية البيانات بترتيب البيانات. إذا كان مجالك هو تكنولوجيا المعلومات أو علوم الكمبيوتر ، فربما تكون قد صادفت مصطلحات مثل Quick Sort و Bubble Sort و Merge Sort وما إلى ذلك.
هذه خوارزميات فرز مختلفة تعتمد على عوامل مختلفة مثل بنية البيانات والتعقيد وما إلى ذلك. واحدة من خوارزميات الفرز الشائعة التي سنناقشها هنا هي Heap Sort. إنه مشابه جدًا لفرز التحديد ، حيث يتم تحديد القيمة القصوى ووضعها في نهاية القائمة أو المصفوفة. دعونا نحفر لفهم هذا بشكل أفضل.
في Heap Sorting ، كما يوحي الاسم ، فإن الخطوة الأولى هي عملية إنشاء أكوام ، أو تجميع بشكل عام. نقوم بإنشاء Max Heap لفرز العناصر بترتيب تصاعدي. بمجرد إنشاء الكومة ، نقوم بتبديل الملاحظة الجذر مع العقدة الأخيرة وحذف العقدة السابقة من الكومة.
جدول المحتويات
تعقيد الزمان والمكان لفرز الكومة في بنية البيانات
- أفضل = Ω (ن سجل (ن))
- المتوسط = Θ (ن سجل (ن))
- الأسوأ = O (n log (n))
- تعقيد مساحة Heap Sort هو O (1).
وبالمثل ، يوجد مفهوم Max Heap و Min Heap. مثل الأشجار والمصفوفات ، هناك بنية بيانات منظمة أخرى تسمى Heap Data Structure. إنها شجرة ثنائية كاملة تتبع القاعدة القائلة بأن جميع العقد الجذرية أكبر (لـ Max Heap) أو أصغر (لـ Min Heap) من العقد التابعة لها. تسمى هذه العملية Heapify. الصورة الموضحة أدناه هي رسم تخطيطي لا يحتاج إلى شرح لـ Min و Max Heaps.
اقرأ أيضًا: الفرز في بنية البيانات
مزايا وعيوب استخدام فرز الكومة في بنية البيانات
المزايا: الأداء المحسن والكفاءة والدقة هي عدد قليل من أفضل صفات هذه الخوارزمية. الخوارزمية أيضًا متسقة بشكل كبير مع استخدام الذاكرة المنخفض جدًا. لا توجد مساحة ذاكرة إضافية مطلوبة للعمل ، على عكس فرز الدمج أو الفرز السريع العودي.
العيوب: يعتبر Heap Sort غير مستقر ومكلف وغير فعال للغاية عند التعامل مع بيانات معقدة للغاية.
تطبيقات فرز الكومة
ربما تكون قد صادفت خوارزمية Dijkstra التي تجد أقصر مسار حيث يتم تنفيذ Heap Sort. يتم استخدام Heap Sort in Data Structure عند الحاجة إلى القيمة الأصغر (الأقصر) أو الأعلى (الأطول) على الفور. تشمل الاستخدامات الأخرى العثور على الترتيب في الإحصائيات ، والتعامل مع قوائم الانتظار ذات الأولوية في خوارزمية Prim (تسمى أيضًا الحد الأدنى للشجرة الممتدة) وترميز Huffman أو ضغط البيانات.
وبالمثل ، تستخدم أنظمة التشغيل المختلفة هذه الخوارزمية لإدارة الوظائف والعمليات لأنها تستند إلى قائمة الانتظار ذات الأولوية.
بأخذ مثال من الحياة الواقعية - يمكن تطبيق الفرز السريع على متجر بطاقة sim حيث يوجد العديد من العملاء في الطابور. يمكن التعامل مع العملاء الذين يتعين عليهم دفع الفواتير أولاً لأن عملهم سيستغرق وقتًا أقل. ستوفر هذه الطريقة الوقت للعديد من العملاء في الطابور وتجنب الانتظار غير الضروري.

تعلم دورة علوم البيانات من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.
يجب أن تقرأ: موضوعات وأفكار مشروع هيكل البيانات
خاتمة
لكل نوع من خوارزمية الفرز أو البحث ، هناك دائمًا مزايا وعيوب. مع خوارزميات Heap Sorting ، هناك عدد قليل جدًا من العيوب. لا توجد متطلبات إضافية لمساحة الذاكرة.
العامل الآخر هو الوقت. لقد وجد أن التعقيد الزمني يتم حسابه على أنه nlog (n) ، لكن فرز الكومة الفعلي أقل من O (nlog (n)). والسبب هو أن التخفيض أو الاستخراج من Heap Sort يقلل الحجم ويستغرق وقتًا أقل بكثير مع استمرار العملية.
ومن ثم ، يعتبر Heap Sorting أحد خوارزميات الفرز "الأفضل" لأسباب مختلفة في عالم بنية البيانات.
تعد بنية البيانات ومؤسساتها أحد أساسيات علوم الكمبيوتر. إذا كانت المعرفة المنطقية والعملية للفرد قوية ، فبإمكانهم أن يتفوقوا في مجالات مثل البرمجة. لا يتعلق الأمر فقط بالتميز في الدورة ، ولكن لا يمكن للمرء المضي قدمًا في البرمجة دون معرفة بنية البيانات.
لذا فإن الخطوة التالية التي يتعين عليك اتخاذها هي أن تسجل نفسك في الدورة التي تريدها. أود أن أقترح مبادرة التعلم مدى الحياة من UpGrad والتي لن تغطي فقط بعض الموضوعات الأساسية مثل Heap Sort في بنية البيانات ولكن أيضًا تمنحك المعرفة حول علوم البيانات وإدارة التكنولوجيا والتسويق الرقمي.
عشر دورات مجانية مع إرشاد الصناعة ، وجلسات مباشرة ، ومناقشة 1-1 ، وشهادة ، وأكثر من ذلك بكثير. تحقق من الرابط لمزيد من التفاصيل . إذا كنت تريد معرفة المزيد ، فلا تتردد في الاتصال بفريقنا من المستشارين والمدربين المهنيين الخبراء!
ما هو المقصود ب Heapify؟
تُعرف عملية تحويل الشجرة الثنائية إلى بنية بيانات كومة باسم Heapify. الشجرة الثنائية هي بنية بيانات على شكل شجرة ، يتم فيها ملء كل مستوى ، باستثناء الأخير ، وتكون جميع العقد بعيدة قدر الإمكان عن بعضها البعض. يجب أن تكون الكومة عبارة عن شجرة ثنائية كاملة ، مما يعني أن كل مستوى شجرة يتم ملؤه ، باستثناء المستوى السفلي. يتم ملؤها من اليسار إلى اليمين في هذا المستوى. يجب أن تفي الكومة أيضًا بخاصية ترتيب الكومة ، والتي تنص على أن القيمة المخزنة في كل عقدة أكثر أهمية من القيمة المخزنة عند نسلها أو مساوية لها.
كيف يختلف Heap Sort عن Selection Sort؟
تقوم طريقة فرز التحديد بفرز المصفوفة عن طريق الانتقاء المستمر للعنصر الأصغر من القسم غير الفرز وإدراجه في البداية. كل تكرار لفرز التحديد يحدد أصغر عنصر من المصفوفة الفرعية غير المصنفة وينقله إلى المصفوفة الفرعية التي تم فرزها. في المقابل ، لا يقضي heapsort وقتًا في إجراء مسح خطي للمنطقة غير المصنفة. بدلاً من ذلك ، فإنه يحتفظ بالجزء غير الفرز أثناء ترتيب الكومة لتحديد موقع العنصر الأكبر في كل خطوة بسرعة أكبر.
ما هي التطبيقات الواقعية لفرز الكومة؟
هناك العديد من الاستخدامات الواقعية لفرز الكومة. عندما نحتاج إلى اكتشاف قيمة K الأصغر (أو الأكبر) لرقم ، فقد نستخدم الأكوام لحل المشكلة بسرعة وسهولة. يتم الفرز من خلال تكوين أكوام في خوارزمية فرز الكومة ، وهي طريقة لفرز العناصر إما في كومة دقيقة أو كومة كومة قصوى. تُستخدم الكومات لتنفيذ قائمة انتظار ذات أولوية ، مع تحديد الأولوية بالترتيب الذي يتم به تكوين الكومة. نظرًا لتعقيد O (n log (n)) ، فإن الأنظمة المعنية بالأمان والأنظمة المضمنة ، مثل Linux kernel ، تستخدم Heap Sort.