يعد تعلم خوارزميات البحث والفرز طريقة رائعة لتحسين مهارات حل المشكلات لديك. ستساعدك هذه الخوارزميات أيضًا على كتابة تعليمات برمجية ذات أداء أفضل.
ما هي خوارزميات البحث في جافا سكريبت؟
تُستخدم خوارزميات البحث لاسترداد بعض المعلومات المخزنة في بنية البيانات ، على سبيل المثال ، يمكننا البحث في مصفوفة بنية البيانات عن القيمة (8) ، وبعض المعلومات ، عادةً ما تقوم خوارزمية البحث بإرجاع موقع القيمة التي تم العثور عليها ، أو إذا لم يتم العثور عليها ، return (-1) ، أهم خوارزميات البحث هي:
1. البحث الخطي
البحث الخطي هو خوارزمية بحث شائعة جدًا ؛ يتم تنفيذ البحث الخطي باستخدام طرق (JavaScript) المضمنة (() indexOf () ، و include ، و find () ، و findIndex ()) ، كما أن البحث الخطي بسيط جدًا وسهل التنفيذ ، حيث يتعين عليك الالتفاف حول كل عنصر. إذا كان في المصفوفة وهذا العنصر مساويًا للقيمة المستهدفة ، فقم بالتوقف ، ثم أعد فهرس هذا العنصر.
2. بحث ثنائي
يمكن استخدام البحث الثنائي فقط للبحث عن القيم في المصفوفات (SORTED) ، على سبيل المثال. [1 ، 2 ، 3 ، 6 ، 9]وبالنسبة لأي شيء عدا المصفوفات الأصغر من (10) عناصر ، يكون البحث الخطي أفضل لأنه يؤدي بشكل أفضل من البحث الخطي عندما تكون المصفوفة التي تم فرزها كبيرة ، ويكون تعقيد البحث الثنائي هو الأفضل عندما نحدد قيمة. سيحتاج البحث في منتصف المصفوفة إلى مقارنة واحدة فقط بغض النظر عن حجم المصفوفة ، لذلك في أحسن الأحوال (بحث ثنائي) سيتم تشغيله في وقت ثابت (O (1)).
ما هي خوارزميات الفرز في جافا سكريبت؟
تُستخدم خوارزميات الفرز لترتيب مجموعة من العناصر بترتيب معين ، وعادة ما يكون ترتيب الفرز معجميًا ، على سبيل المثال الأبجدية (az) أو الرقمية (0-9) ، فيما يلي أنواع خوارزميات الفرز:
1. خوارزمية فرز الفقاعات
الفرز الفقاعي عبارة عن خوارزمية فرز سهلة الفهم لأنها تعمل عن طريق التكرار عبر تسلسل ومقارنة العناصر المجاورة ثم استبدالها إذا كانت بالترتيب الخاطئ ؛ يتم فرز المصفوفة وأفضل مضاعفات الحالة لـ (Bubble Sort) هي عندما يتم فرز المصفوفة تقريبًا وتحتاج فقط إلى تشغيل واحد مع الاستبدالات ، ولا يتطلب التشغيل التالي أي استبدال ، لذلك يعرف فرز الفقاعة أن المصفوفة مرتبة ويمكن إرجاعها.
2. اختيار فرز الخوارزمية
فرز التحديد مشابه لفرز الفقاعة ، ولكن بدلاً من القيم الأكبر “المتدفقة” لأعلى ، يتم تحديد القيم الأصغر ووضعها في البداية. يعمل فرز التحديد من خلال الصعود في المصفوفة واختيار الحد الأدنى. القيمة ، ثم انقل الحد الأدنى للقيمة إلى بداية المصفوفة. حيث ينمو الجانب الأيسر من المصفوفة في نهاية كل ممر عبر المصفوفة حتى يتم فرز المصفوفة بأكملها.
3. طلب الإدراج
تصنيف الإدراج هو خوارزمية فرز إرشادية أخرى وله أيضًا بعض حالات الاستخدام المثيرة للاهتمام. تعمل خوارزمية تصنيف الإدراج من خلال مقارنة عنصر بالعناصر الموجودة على يساره حتى يصل إلى عنصر أصغر منه ؛ ثم يتم إدخال العنصر أمام العنصر الصغير.
في مصطلحات علوم الكمبيوتر ، يُعرف تصنيف الإدراج باسم “خوارزمية عبر الإنترنت” ؛ هذا يعني أنه يمكن معالجة الإدخال بترتيب مجزأ ، أي بالترتيب الذي يتم فيه إدخال المدخلات في الخوارزمية. المدخلات المتاحة من البداية ، مثال هذا هو الأشخاص الذين يرسلون لنا البيانات مباشرة وفي أي لحظة نحتاج إلى فرز هذه البيانات ، تم فرز الجانب الأيسر من المصفوفة بالفعل بحيث يمكن العثور على أي بيانات جديدة بسرعة. .
4. دمج الفرز
(Merge Sort) هي واحدة من أكثر خوارزميات الفرز كفاءة ، حيث إنها خوارزمية طريقة تستفيد من حقيقة أن جميع المصفوفات ذات الطول صفر أو واحد يتم ترتيبها بشكل طبيعي ، وتقسم أولاً مصفوفة الإدخال حتى تحصل على (دمج الفرز) المصفوفات. صفر أو عنصر واحد وهذه هي “الحالة الأساسية”.
على عكس بعض خوارزميات الفرز الأخرى مثل الفرز الفقاعي أو الإضافة ، فإن Merge Sort لا تهتم بما إذا كانت البيانات مرتبة بشكل تقريبي أم لا ، فإن Merge Sort تؤدي دائمًا نفس الشيء لأنها ستؤدي جميع الخطوات من تقسيم المصفوفة إلى الدمج. يعيد التجميع بغض النظر عما إذا كانت مصفوفة الإدخال متسلسلة أو “عشوائية” أو مقلوبة.
5. فرز سريع
QuickSort هي خوارزمية فرز شائعة وفعالة ، ولكنها أيضًا واحدة من أقل الحلول بديهية ، إليك نظرة عامة على كيفية عمل QuickSort:
- حدد المحور ، يمكن أن يكون أي عنصر في المصفوفة.
- إذا قمنا بعمل حلقة على المصفوفة ووضعنا كل الأرقام الأقل من المحور على يسار المحور ، وكل الأرقام الأكبر من المحور على يمين المحور ، سيكون المحور في المكان المناسب في المصفوفة . .
- ثم لدينا مصفوفة فرعية على يسار المحور ومصفوفة فرعية على يمين المحور ، والآن نحتاج إلى فرز هذه المصفوفات بحيث يتم تحديد المحور في كل من هذه المصفوفات ووضعه في مكانه.
- تتكرر هذه العملية حتى يتم اصطفاف السلاسل الفرعية اليمنى واليسرى ويكون كل رقم في مكانه الصحيح.
الفرز السريع جيد جدًا في فرز المصفوفات الكبيرة ، لكن الفرز الإضافي عادة ما يكون خيارًا أفضل للمصفوفات الصغيرة ، مع العلم أنه يمكنك إجراء تحسين ، يمكن التحقق من طول مصفوفة الإدخال قبل الفرز ؛ إذا كانت المصفوفة صغيرة ، فقم بإجراء فرز الإدراج ؛ إذا كانت المصفوفة كبيرة ، فقم بإجراء فرز سريع.
6. تسلسل الجذر
Radix Sort هي خوارزمية فرز فريدة ، فهي تقوم بفرز مصفوفة دون أي مقارنة بين العناصر ، ويستفيد Radix Sort من حقيقة أن حجم الرقم مشفر بعدد الأرقام ، وكلما زاد عدد الأرقام يعني عددًا أكبر مثل كل رقم. يمكن أن يكون أيًا من القيم العشر: (0-9) ، لذلك نحتاج إلى إنشاء عشر مجموعات ، واحدة لكل قيمة.
ومع ذلك ، فإن Radix Sort ليس شائعًا مثل Merge Sort أو Quick Sort لأنه أكثر “تخصصًا” في Merge / Quick Sort حيث يمكنهم التعامل مع الأعداد الصحيحة والمتغيرات والأرقام وفرزها دون أي مشاكل. إذا أردنا تغيير الفرز.
المصدر: وكالات