صفائف الفرز هي واحدة من العمليات الرئيسية في البرمجة. اعتمادا على المهمة ، قد تحتاج إلى فرز مجموعة من الأرقام أو السلاسل بترتيب تصاعدي أو تنازلي. في هذه المقالة ، سنلقي نظرة على برنامج بلغة برمجة يسمح لك بفرز صفيف بترتيب تنازلي والبحث عن القيم فيه.
لفرز المصفوفة بترتيب تنازلي ، سوف نستخدم خوارزمية فرز الفقاعة. تعتمد هذه الخوارزمية على حقيقة أننا نمر عبر المصفوفة عدة مرات ، ومقارنة عنصرين متجاورين مع كل تمريرة وتبديلهما إذا لزم الأمر. وهكذا ، في كل تمريرة ، "ينبثق" أكبر عنصر إلى الموضع الصحيح على اليمين.
بعد فرز الصفيف بترتيب تنازلي ، سنكون قادرين على البحث عن القيم فيه. للقيام بذلك ، سنأخذ القيمة التي أدخلها المستخدم ونتحقق مما إذا كانت تحدث في المصفوفة التي تم فرزها. إذا تم العثور على القيمة ، سيقوم البرنامج بإخراج موضعه في المصفوفة.
- برنامج لفرز صفيف بترتيب تنازلي والبحث عن القيم فيه
- ، خوارزمية فرز تنازلي
- تنفيذ برنامج الفرز في لغة البرمجة
- البحث عن القيم في صفيف تم فرزه
- سؤال وجواب
- ما هو البرنامج الذي يمكن استخدامه لفرز مصفوفة بترتيب تنازلي?
- ما هي الخوارزمية المستخدمة للعثور على قيمة في صفيف?
- مدى سرعة يمكنني فرز مجموعة في ترتيب تنازلي?
برنامج لفرز صفيف بترتيب تنازلي والبحث عن القيم فيه
يعد فرز صفيف بترتيب تنازلي والبحث عن القيم فيه من المهام الرئيسية عند العمل مع صفائف البيانات. يمكن أن يكون البرنامج الذي يسمح لك بحل هذه المشكلات مفيدا في تطوير البرامج وتحليلات البيانات والمجالات الأخرى.
يمكن استخدام خوارزميات مختلفة لفرز المصفوفة بترتيب تنازلي ، بما في ذلك فرز الفقاعات أو فرز الإدراج أو فرز الدمج. كل من هذه الخوارزميات لها مزاياها وعيوبها ، ويعتمد اختيار خوارزمية معينة على المهمة المحددة.
قد يبدو برنامج لفرز مصفوفة بترتيب تنازلي كما يلي:
تصنيف مواطن_صنف_تنازلي (صفيف):
فرز = فرز (صفيف ، عكس = صحيح)
عودة فرز_أراي
صفيف = [5, 8, 2, 1, 10]
تصنيف = تصنيف _ تصنيف _ تنازلي (صفيف)
طباعة (مصنفة)
بترتيب تنازلي. ثم يتم عرض المصفوفة المصنفة على الشاشة.
والمشغلين الشرطيين. قد يبدو برنامج مثال للبحث عن قيمة في صفيف كما يلي:
ديف العثور على القيمة في الصف (صفيف ، قيمة):
لأني في النطاق (لين (صفيف)):
إذا صفيف [أنا] = = قيمة:
عودة أنا
عودة -1
صفيف = [5, 8, 2, 1, 10]
القيمة = 2
الفهرس = البحث عن القيمة في الصف (صفيف ، قيمة)
إذا مؤشر != -1:
طباعة ("القيمة" ، القيمة، "الموجودة في المصفوفة في الموضع" ، الفهرس)
آخر:
طباعة ("القيمة" ، القيمة، "غير موجود في المصفوفة")
وإرجاع الفهرس الخاص به إذا تم العثور على القيمة. إذا لم يتم العثور على القيمة ، يقوم البرنامج بإرجاع -1. ثم يعرض البرنامج النتيجة على الشاشة.
من المهم أن نفهم أن هذه البرامج النموذجية أساسية ويمكن تحسينها أو تحسينها اعتمادا على المهمة المحددة وخصائص العمل مع صفائف البيانات.
في الختام ، يعد برنامج فرز صفيف بترتيب تنازلي والبحث عن القيم فيه أداة مفيدة عند العمل مع صفائف البيانات. يسمح لك بتنظيم البيانات بكفاءة والعثور على القيم الضرورية. عند تطوير مثل هذا البرنامج ، من الضروري اختيار الخوارزميات والأساليب المناسبة لحل المشكلة ، وكذلك مراعاة تفاصيل مجال الموضوع ومتطلبات الأداء.
خوارزمية الفرز التنازلي
فرز الصفيف هو أحد العمليات الحسابية الأساسية. يتيح لك الفرز التنازلي ترتيب العناصر بترتيب تنازلي لقيمها. تظهر خوارزمية الفرز التنازلي أدناه:
- تهيئة مجموعة من القيم التي سيتم فرزها.
- إلى الصفر.
- أقل من طول المصفوفة ناقص واحد ، اتبع الخطوات التالية:
- من الصفر.
- ، اتبع هذه الخطوات:
- ، تبادل قيم العناصر.
- من جانب واحد.
- إخراج مجموعة فرزها.
عادة ما يتم تنفيذ خوارزمية الفرز التنازلي باستخدام الحلقات والمشغلين الشرطيين. يعتمد على مقارنة قيمتين ونقل عناصر المصفوفة إلى الموضع المطلوب.
نموذج شفرة جافا سكريبت:
وظيفة ديسندينغسورت (صفيف) {
طول فار = صفيف.الطول;
إلى عن على (فار أنا = 0 ؛ أنا < الطول - 1 ؛ أنا {) {
إلى عن على (فار ي = 0 ؛ ي < طول-1-أنا; j++) {
if (array[j] < array[j + 1]) {
var temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
return array;
}
var array = [5, 2, 9, 1, 7];
var sortedArray = descendingSort(array);
console.log(sortedArray); // [9, 7, 5, 2, 1]
по убыванию и выводит отсортированный массив в консоль.
تعد خوارزمية الفرز التنازلي واحدة من أكثر الطرق فعالية لترتيب مصفوفة بترتيب تنازلي لقيمها. تستخدم هذه الخوارزمية على نطاق واسع في مختلف المجالات ، بما في ذلك البرمجة وفرز البيانات وتحليل المعلومات.
تنفيذ برنامج الفرز في لغة البرمجة
الفرز من أهم العمليات في البرمجة. يسمح لك بتنظيم البيانات بترتيب معين ، مما يبسط العمل اللاحق معهم. دعونا ننظر في تنفيذ برنامج الفرز في لغة البرمجة.
أولا ، تحتاج إلى اختيار خوارزمية الفرز المناسبة. واحدة من خوارزميات الفرز الأكثر شعبية هي خوارزمية فرز الفقاعة. يعتمد على مقارنة أزواج العناصر المجاورة ثم إعادة ترتيبها إذا كانت بترتيب خاطئ.
قد يبدو تنفيذ برنامج فرز الفقاعات كما يلي:
1. إنشاء وظيفة من شأنها أن تأخذ مجموعة من الأرقام لفرز
2. داخل الدالة ، نقوم بإنشاء متغير لتخزين طول المصفوفة
3. إنشاء حلقة من شأنها أن تعمل حتى يتم فرز مجموعة
4. داخل الحلقة ، نقوم بإنشاء حلقة أخرى من شأنها أن تعمل من خلال جميع عناصر المصفوفة
5. داخل الحلقة الثانية ، نقارن العنصر الحالي بالعنصر السابق
6. إذا كان العنصر الحالي أصغر من العنصر السابق ، فقم بتبديله
7. بعد المرور عبر جميع عناصر المصفوفة ، نتحقق مما إذا كان قد تم تنفيذ التباديل
8. إذا تم إجراء التباديل ، فلن يتم فرز المصفوفة بعد ، ونستمر في الدورة
9. إذا لم يتم تنفيذ التباديل ، فسيتم فرز المصفوفة ، وننهي الحلقة
10. إرجاع المصفوفة التي تم فرزها
نموذج التعليمات البرمجية في لغة البرمجة:
وظيفة بوبليسورت (آر) {
فار لين = آر.الطول;
فار تبادلت;
هل {
تبديل = خطأ;
إلى عن على (فار أنا = 0; أنا < لين - 1; أنا {) {
إذا (أر [أنا] > أر [أنا + 1]) {
فار درجة الحرارة = آر [أنا];
أر [أنا] = أر [أنا + 1 ] ;
أر [أنا + 1] = درجة الحرارة;
تبادلت = صحيح;
}
}
} بينما (تبادلت);
عودة آر;
}
وبالتالي ، يمكن أن يعتمد تنفيذ برنامج الفرز بلغة البرمجة على اختيار خوارزمية فرز معينة وتنفيذها لاحقا في رمز البرنامج. في هذه الحالة ، تم استخدام خوارزمية فرز الفقاعات.
البحث عن القيم في صفيف تم فرزه
عندما يتم فرز المصفوفة بترتيب تنازلي ، فإن الخوارزمية الفعالة للعثور على القيمة فيها هي خوارزمية البحث الثنائية. تقلل هذه الخوارزمية من عدد المقارنات المطلوبة للعثور على القيمة المطلوبة.
يعمل البحث الثنائي على النحو التالي:
- تبدأ العملية بتحديد العنصر الأوسط للمصفوفة.
- ثم تتم مقارنة قيمة العنصر الأوسط بالقيمة المطلوبة.
- إذا كانت القيمة المطلوبة تساوي العنصر الأوسط ، فسيكون البحث ناجحا ويتم إرجاع فهرس العنصر الذي تم العثور عليه.
- إذا كانت القيمة المطلوبة أقل من العنصر الأوسط ، فسيستمر البحث في النصف الأيسر من المصفوفة.
- إذا كانت القيمة المطلوبة أكبر من العنصر الأوسط ، فسيستمر البحث في النصف الأيمن من المصفوفة.
- تتكرر العملية من الخطوة الثانية حتى يتم العثور على القيمة المطلوبة أو حتى يتبقى عنصر واحد فقط في المصفوفة.
خوارزمية البحث الثنائي لديها تعقيد ا (سجل ن) ، أين ن هو حجم المصفوفة. هذا هو أكثر كفاءة بكثير من البحث الخطي البسيط ، الذي لديه تعقيد س(ن).
ومع ذلك ، يجدر النظر في أن خوارزمية البحث الثنائي تعمل فقط مع المصفوفات المصنفة. إذا لم يتم فرز المصفوفة ، فيجب عليك إما فرزها قبل البحث عن القيمة ، أو استخدام خوارزمية أخرى مثل البحث الخطي.
سؤال وجواب
ما هو البرنامج الذي يمكن استخدامه لفرز مصفوفة بترتيب تنازلي?
يمكن استخدام برامج وخوارزميات مختلفة لفرز المصفوفة بترتيب تنازلي. واحدة من هذه الخوارزميات هي خوارزمية فرز الفقاعة التي تمر عبر المصفوفة عدة مرات ، مبادلة العناصر المجاورة إذا كانت في ترتيب خاطئ. هناك خوارزميات أخرى ، مثل خوارزمية الفرز السريع أو خوارزمية فرز الدمج. يمكن تنفيذ كل هذه الخوارزميات باستخدام لغات برمجة مختلفة مثل سي++ وجافا وبايثون وما إلى ذلك.
ما هي الخوارزمية المستخدمة للعثور على قيمة في صفيف?
هناك أيضا العديد من الخوارزميات للبحث عن قيمة في صفيف. واحدة من أبسط الخوارزميات هي خوارزمية البحث الخطي ، والتي تمر ببساطة عبر جميع عناصر المصفوفة ، ومقارنتها بقيمة معينة. إذا تم العثور على تطابق ، تقوم الخوارزمية بإرجاع فهرس العنصر الذي تم العثور عليه. خوارزمية شائعة أخرى هي خوارزمية البحث الثنائية ، والتي تعمل فقط على المصفوفات المصنفة. يقسم المصفوفة إلى نصفين ويقارن القيمة المطلوبة بالعنصر الموجود في منتصف المصفوفة ، وبعد ذلك يستمر في البحث في النصف المقابل من المصفوفة. تتكرر هذه العملية حتى يتم العثور على تطابق أو يتم تحديد أن القيمة المطلوبة ليست في المصفوفة.
مدى سرعة يمكنني فرز مجموعة في ترتيب تنازلي?
تعتمد سرعة فرز المصفوفة بترتيب تنازلي على خوارزمية الفرز المحددة. بعض الخوارزميات ، مثل خوارزمية فرز الفقاعة ، لها تعقيد زمني تربيعي ويمكن أن تستغرق وقتا طويلا في المصفوفات الكبيرة. ومع ذلك ، هناك أيضا خوارزميات أكثر كفاءة ، مثل خوارزمية الفرز السريع أو خوارزمية فرز الدمج ، والتي لها تعقيد زمني لـ س(ن*سجل(ن)) ويمكنه التعامل مع المصفوفات الكبيرة بشكل أسرع. تجدر الإشارة أيضا إلى أن سرعة الفرز قد تعتمد على التنفيذ المحدد للخوارزمية وعلى خصائص الكمبيوتر الذي يتم إجراء الفرز عليه.