يعد فرز عناصر المصفوفة أحد أكثر مهام البرمجة شيوعا. ومع ذلك ، في بعض الأحيان قد يكون من الضروري فرز العناصر الزوجية للصفيف فقط ، وترك العناصر الفردية في أماكنها. في هذه المقالة ، سننظر في كيفية إجراء هذا الفرز في جافا سكريبت.
بادئ ذي بدء ، نحتاج إلى مجموعة من الأرقام ، من بينها نحتاج إلى فرز العناصر الزوجية فقط. يمكننا إنشائه يدويا أو الحصول عليه من مصدر بيانات آخر. من المهم أن تتذكر أن الفرز يعمل فقط مع الأرقام ، لذلك إذا كانت صفيفتنا تحتوي على أنواع بيانات أخرى ، فيجب استبعادها أو تحويلها إلى أرقام.
بعد ذلك ، يمكننا استخدام طرق مختلفة لفرز المصفوفة. على سبيل المثال ، توفر طريقة الفرز() القدرة على فرز العناصر بترتيب تصاعدي أو تنازلي. ومع ذلك ، بشكل افتراضي ، فإنه يفرز جميع عناصر المصفوفة ، بما في ذلك العناصر الفردية. لتنفيذ فرز العناصر الزوجية فقط ، سنحتاج إلى استخدام طريقة أخرى أو وظيفة الفرز الخاصة بنا.
عدد الوظائف (أ ، ب) {
العودة أ-ب;
}
في هذه الحالة ، نستخدم الدالة المقارنة () لتحديد ترتيب فرز عناصر المصفوفة. تأخذ الوظيفة وسيطتين-عنصران من الصفيف يجب مقارنتهما. داخل الوظيفة ، نعيد الفرق بين عنصرين ، مما يسمح لنا بفرزهما بترتيب معين — تصاعدي أو تنازلي.
- اختيار حتى عناصر الصفيف
- 1. التكرار من خلال المصفوفة
- 2. باستخدام طريقة التصفية ()
- 3. باستخدام المشغل %
- ميزات العمل مع الأرقام الزوجية
- خوارزميات الفرز الأساسية
- أمثلة التعليمات البرمجية للفرز
- بايثون
- جافا سكريبت
- جافا
- التحقق الأولي من المصفوفة لوجود عناصر متساوية
- إخراج عناصر صفيف مرتبة
- سؤال وجواب
- كيف يمكنني التحقق مما إذا كان الرقم حتى?
- كيف يمكنني فرز مجموعة في ترتيب تصاعدي?
- كيف يمكنني إنشاء مجموعة جديدة في البرمجة?
- كيف يمكنني فرز مجموعة في ترتيب تنازلي?
اختيار حتى عناصر الصفيف
يمكن استخدام عدة طرق مختلفة لتحديد عناصر المصفوفة ذات الأرقام الزوجية.
1. التكرار من خلال المصفوفة
طريقة واحدة هي الذهاب من خلال كل عنصر من عناصر المصفوفة والتحقق من ذلك من أجل التكافؤ.
أرقام فار= [1, 2, 3, 4, 5, 6];
فار حتى الأرقام = [];
إلى عن على (فار ط = 0; أنا < أرقام.الطول ؛ أنا {) {
إذا (أرقام [أنا] % 2 = = = 0) {
حتى الأرقام.دفع (أرقام [أنا]);
}
}
في هذا المثال ، يتم إنشاء مصفوفة فارغة جديدة `إيفينومبرز'. ثم التكرار يحدث على كل عنصر من عناصر 'أرقام' مجموعة. إذا كان العنصر هو عدد زوجي ، يتم إضافته إلى صفيف 'إيفينومبرز' باستخدام طريقة ' دفع ()'.
2. باستخدام طريقة التصفية ()
يوفر جافا سكريبت طريقة` تصفية () ' التي يمكن استخدامها لتصفية مجموعة باستخدام وظيفة معينة.
أرقام فار= [1, 2, 3, 4, 5, 6];
فار حتىأرقام = أرقام.مرشح(وظيفة (رقم) {
رقم الإرجاع % 2 = = = 0;
});
في هذا المثال ، يتم تطبيق طريقة` تصفية () `إلى` أرقام ' مجموعة باستخدام وظيفة مجهولة. قيمة الإرجاع للوظيفة هي شرط يجب أن يكون صحيحا حتى يتم تخزين العناصر في المصفوفة الناتجة.
3. باستخدام المشغل %
يتم استخدام عامل التشغيل ' ٪ ' في جافا سكريبت للحصول على ما تبقى من التقسيم. إذا كان الرقم قابلا للقسمة على 2 بدون الباقي ، فهو زوجي.
أرقام فار= [1, 2, 3, 4, 5, 6];
فار حتىأرقام = أرقام.مرشح(وظيفة (رقم) {
رقم الإرجاع % 2 = = = 0;
});
بعد تطبيق طريقة ' تصفية ()` إلى `أرقام` مجموعة باستخدام وظيفة مجهول ، فقط العناصر التي هي القسمة على 2 دون بقية ، وبالتالي ، حتى ستبقى.
في كل من هذه الأساليب ، ستحتوي النتيجة على عناصر صفيف فقط.
ميزات العمل مع الأرقام الزوجية
- الأرقام الزوجية قابلة للقسمة على 2 بدون الباقي.
- يمكن تحديد تعادل الرقم باستخدام القسمة على 2 العملية والتحقق من ما تبقى من القسمة.
- للتحقق من تعادل الرقم ، يتم استخدام عامل النسبة المئوية (ما تبقى من القسمة).
- حتى الأرقام لها خصائص وميزات معينة يمكنها تبسيط العمل معها:
- سيكون مجموع رقمين زوجيين دائما.
- ضرب رقم زوجي في أي رقم آخر سيعطي أيضا نتيجة زوجية.
- يمكن تمثيل الرقم الزوجي كقيمة ذات شقين لرقم آخر.
- في البرمجة ، يمكن أن يكون فرز المصفوفة حسب التكافؤ مفيدا لتحديد أو إخراج الأرقام الزوجية فقط.
خوارزميات الفرز الأساسية
الفرز هو عملية ترتيب البيانات وفقا لمعيار معين. في البرمجة ، يعد فرز المصفوفة أحد أكثر أنواع الفرز شيوعا.
هناك العديد من خوارزميات الفرز الأساسية:
- فرز الفقاعة: هذه خوارزمية بسيطة ، لكنها قد تكون غير فعالة للمصفوفات الكبيرة. وهو يعمل عن طريق مقارنة ومبادلة العناصر المجاورة حتى يتم ترتيب جميع العناصر.
- الفرز حسب الاختيار: تعمل هذه الخوارزمية عن طريق تحديد الحد الأدنى للعنصر من المصفوفة ووضعه في البداية. ثم يكرر هذه العملية للعناصر المتبقية حتى يتم ترتيب المصفوفة بالكامل.
- فرز الإدراج: تعمل خوارزمية فرز الإدراج عن طريق بناء الجزء المصنف من المصفوفة تدريجيا. يمر عبر المصفوفة ويدرج العنصر الحالي في الموضع الصحيح في الجزء الذي تم فرزه بالفعل.
- دمج الفرز: يستخدم هذا الفرز نهجا تكراريا ويستند إلى مبدأ الفصل والدمج. يتم تقسيم المصفوفة إلى نصفين حتى لا يتبقى عنصر واحد ، ثم يتم دمجها وفرزها بالتسلسل.
- الفرز السريع: تعتمد خوارزمية الفرز السريع على مبدأ الانفصال والهيمنة. تنقسم المصفوفة إلى جزأين ، يحتوي أحدهما على جميع العناصر الأصغر من العنصر المرجعي المحدد ، والآخر يحتوي على جميع العناصر الأكبر من العنصر المرجعي. تتكرر هذه العملية لكل جزء حتى يتم فرز المصفوفة بالكامل.
كل من هذه الخوارزميات لها مزاياها وقيودها اعتمادا على حجم ونوع البيانات. يجب أن يعتمد اختيار خوارزمية الفرز على الكفاءة المطلوبة وتعقيد التنفيذ.
| الخوارزمية | متوسط الصعوبة | أسوأ صعوبة |
|---|---|---|
| فرز الفقاعات | س (ن^2) | س (ن^2) |
| الفرز حسب الاختيار | س (ن^2) | س (ن^2) |
| الفرز حسب الإدخالات | س (ن^2) | س (ن^2) |
| دمج الفرز | س (ن * سجل (ن)) | س (ن * سجل (ن)) |
| فرز سريع | س (ن * سجل (ن)) | س (ن^2) |
بمعرفة خوارزميات الفرز الأساسية ، يمكنك اختيار أنسبها لحل مهمة معينة وضمان العمل الفعال مع صفائف البيانات.
أمثلة التعليمات البرمجية للفرز
فيما يلي أمثلة على التعليمات البرمجية في العديد من لغات البرمجة التي تسمح لك بفرز العناصر الزوجية للصفيف فقط:
بايثون
إذا (العدد ٪ 2 == 0) {
- حتى الأرقام.إضافة (رقم);
}
مجموعات.فرز (حتى الأرقام);
النظام.خارج.برينتلن (حتى الأرقام);
مرشح()
и
فرز()
:
كثافة العمليات [] أرقام = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
قائمة حتى الأرقام = المصفوفات.تيار (أرقام)
.تصفية (عدد - > عدد % 2 = = 0)
.فرز()
.محاصر()
النظام.خارج.برينتلن (حتى الأرقام);
التحقق الأولي من المصفوفة لوجود عناصر متساوية
قبل البدء في فرز عناصر المصفوفة فقط ، من الضروري إجراء فحص أولي لوجود مثل هذه العناصر. سيحدد هذا الفحص ما إذا كان يجب إجراء الفرز على الإطلاق ، أو يمكنك على الفور عرض رسالة تفيد بعدم وجود أرقام زوجية في المصفوفة. يمكن استخدام الخوارزمية التالية لهذا الغرض:
إنشاء متغير إيفينكسيستس وتعيينه إلى كاذبة.
كرر من خلال جميع عناصر المصفوفة باستخدام حلقة.
في كل تكرار ، تحقق مما إذا كان العنصر الحالي هو رقم زوجي. إذا كان الأمر كذلك ، تعيين قيمة المتغير إيفينكسيدس إلى صحيح وإجهاض الحلقة.
بعد تنفيذ هذه الخوارزمية ، يمكنك التحقق من قيمة المتغير إيفينيكسيدس. إذا كانت القيمة صحيحة ، فهناك عنصر واحد على الأقل في المصفوفة ويمكنك البدء في الفرز. خلاف ذلك ، يجب عرض رسالة تفيد بأنه حتى العناصر مفقودة.
يتجنب التحقق المسبق من وجود عناصر متساوية في المصفوفة العمل غير الضروري بكميات كبيرة من البيانات. كما أنه يزيد من كفاءة البرنامج ويسمح للمستخدم بالحصول على نتيجة سريعة ودقيقة.
إخراج عناصر صفيف مرتبة
بعد أن قمنا بتصفية المصفوفة وتركنا العناصر الزوجية فقط ، يمكننا إخراجها بترتيب مرتبة. يمكننا استخدام أساليب مختلفة للقيام بذلك.
1. الفرز باستخدام طريقة الفرز () في جافا سكريبت: