الانتقال إلى المحتوى الرئيسي

فرز مصفوفة بترتيب تنازلي لمجموع أرقام الرقم: برنامج فعال باللغة الروسية

يعد فرز مجموعة من الأرقام بترتيب تنازلي من أهم العمليات في البرمجة. ومع ذلك ، هناك نهج مثير للاهتمام للفرز ، والذي لا يعتمد فقط على القيم الرقمية ، ولكن أيضا على مجموع أرقام كل رقم. هذا النهج يسمح لك لترتيب الأرقام في مثل هذه الطريقة التي أولا هناك أرقام مع مبلغ أكبر من الأرقام ، ومن ثم مع واحد أصغر.

تتضمن خوارزمية فرز المصفوفة بترتيب تنازلي لمجموع أرقام الرقم عدة خطوات. في بداية البرنامج ، تحتاج إلى إدخال مجموعة من الأرقام ، سيتم تمثيل كل منها بمتغير منفصل. ثم تحتاج إلى حساب مجموع أرقام كل رقم وحفظ هذه المعلومات في مصفوفة أو قائمة منفصلة. بعد ذلك ، قم بفرز مصفوفة مبالغ الأرقام بترتيب تنازلي واستخدم الترتيب الناتج لفرز المصفوفة الأصلية للأرقام.

مثال على فرز مصفوفة:

مجموعة المصدر: 123, 456, 789, 12, 34, 567

مجموعة من مبالغ الأرقام: 6, 15, 24, 3, 7, 18

مصفوفة مرتبة: 789, 456, 567, 12, 123, 34

يمكن أن يكون هذا النهج لفرز المصفوفة مفيدا في مجموعة متنوعة من المهام ، على سبيل المثال ، في معالجة البيانات ، حيث يكون مجموع أرقام الرقم مهما. بالإضافة إلى ذلك ، يمكن استخدام برنامج فعال باللغة الروسية ينفذ مثل هذا الفرز في مشاريع مختلفة.

  1. برنامج لفرز الأرقام مع أكبر مجموع من الأرقام
  2. خوارزمية فعالة لفرز مصفوفة بترتيب تنازلي لمجموع الأرقام
  3. تنفيذ فرز الصفيف في لغة برمجة بايثون
  4. أمثلة على استخدام برنامج فرز الصفيف
  5. مثال 1
  6. المثال 2
  7. المثال 3
  8. التحسينات الممكنة لبرنامج فرز الصفيف
  9. سؤال وجواب
  10. كيف يعمل البرنامج لفرز مجموعة في ترتيب تنازلي من مجموع الأرقام من عدد?
  11. ما هو تعقيد خوارزمية فرز الفقاعة?
  12. هل من الممكن تحسين هذا البرنامج لفرز صفيف أسرع?
  13. كيف يمكنني تغيير البرنامج لفرز مجموعة في ترتيب تصاعدي من مجموع الأرقام من عدد?
  14. هل يمكن أن تكون هناك أخطاء عند تشغيل برنامج فرز الصفيف?

برنامج لفرز الأرقام مع أكبر مجموع من الأرقام

تم تصميم هذا البرنامج لفرز مجموعة من الأرقام بترتيب تنازلي لمجموع أرقام كل رقم. وسوف تساعدك على العثور على الأرقام مع أكبر مبلغ من الأرقام وعرضها في الترتيب الصحيح.

يعمل البرنامج على النحو التالي:

  1. يقوم المستخدم بإدخال حجم المصفوفة والأرقام نفسها.
  2. يحسب البرنامج مجموع أرقام كل رقم ويخزن النتيجة في مصفوفة منفصلة.
  3. يقوم البرنامج بفرز مجموعة من المبالغ بترتيب تنازلي باستخدام إحدى خوارزميات الفرز المعروفة ، على سبيل المثال ، فرز الفقاعات أو الفرز السريع.
  4. يقوم البرنامج بفرز المصفوفة الأصلية للأرقام وفقا لمجموعة المبالغ المصنفة بحيث تنتهي الأرقام التي تحتوي على أكبر مجموع من الأرقام في بداية المصفوفة.
  5. يعرض البرنامج مجموعة مرتبة من الأرقام مع أكبر مجموع من الأرقام.

يمكن أن يكون البرنامج مفيدا في مواقف مختلفة ، على سبيل المثال ، عند البحث عن الأرقام التي تحتوي على أكبر عدد من الأرقام في مجموعة بيانات كبيرة أو عند فرز المعلومات وفقا لمعيار معين.

فيما يلي مثال على كيفية عمل البرنامج:

إدخال البياناتبيانات الإخراج
39

57

39

  1. 42

14

25

وبالتالي ، يتيح لك البرنامج ترتيب الأرقام بترتيب تنازلي لمجموع أرقامها ، بحيث يكون من الأسهل العمل مع البيانات والعثور على الأرقام التي تحتوي على أكبر مبلغ.

خوارزمية فعالة لفرز مصفوفة بترتيب تنازلي لمجموع الأرقام

يعد فرز صفيف بترتيب تنازلي لمجموع أرقام الرقم مهمة يمكن أن يكون لها حلول مختلفة. يعتمد أحد الحلول الفعالة على استخدام خوارزمية فرز الدمج.

تعتمد خوارزمية فرز الدمج على تقسيم المصفوفة الأصلية إلى نصفين ، وفرز كل نصف على حدة ودمجها في مصفوفة مرتبة. لفرز مصفوفة بترتيب تنازلي لمجموع الأرقام ، تحتاج إلى مقارنة الأرقام ، وليس فهارسها في المصفوفة.

يوجد أدناه خوارزمية فعالة لفرز مصفوفة بترتيب تنازلي لمجموع الأرقام:

إنشاء وظيفة من شأنها أن تعول على مجموع الأرقام من عدد.

إنشاء وظيفة من شأنها أن تقارن رقمين من مجموع الأرقام وإرجاع نتيجة المقارنة.

استخدم خوارزمية فرز الدمج ، ولكن استخدم وظيفة المقارنة التي تم إنشاؤها عند مقارنة عناصر المصفوفة.

قم بتطبيق الخوارزمية الناتجة لفرز المصفوفة الأصلية.

Пример реализации данного алгоритма на языке جافا سكريبت:

وظيفة سوموفديجيتس (الأسطوانات) {

دعونا مجموع = 0;

بينما (الأسطوانات !== 0) {

مجموع + = الأسطوانات ٪ 10;

الأسطوانات = الرياضيات.الطابق (عدد / 10);

}

مبلغ الإرجاع;

}

وظيفة مقارنة الأرقام (أ ، ب) {

كونست سوما = سوموفديجيتس (أ);

كونست سومب = سوموفديجيتس (ب);

إذا (سوما < سمب) {

عودة 1;

} آخر إذا (سوما > سمب) {

عودة -1;

} آخر {

العودة 0;

}

}

وظيفة ميرجسورتبيسوموفديجيتس (أر) {

إذا (آر.الطول < = 1) {

عودة آر;

}

كونست منتصف = الرياضيات.الطابق (آر.الطول / 2);

كونست اليسار = آر.شريحة (0 ، منتصف);

كونست الحق = آر.شريحة (منتصف);

عودة دمج (ميرجسورتبيسوموفديجيتس (يسار) ، ميرجسورتبيسوموفديجيتس (يمين));

}

وظيفة دمج (يسار ، يمين) {

دع النتيجة = [];

دعني = 0;

دع ي = 0;

بينما (أنا < اليسار.طول & & ي < حق.الطول) {

إذا (مقارنة الأرقام (يسار [أنا] ، يمين [ي]) < 0) {

    ل ي في النطاق (0 ، ن-ط-1):

      else:

      1. arr[k] = right_half[j]

        j += 1
        k += 1
        while i < len(left_half):

      2. arr[k] = left_half[i]

        i += 1
        k += 1
        while j < len(right_half):

        arr[k] = right_half[j]

      3. j += 1
        k += 1
        В функции создаем проверку, если длина массива больше 1. Если да, то находим середину массива и делим его на две части: левую и правую. ثم نطبق بشكل متكرر وظيفة الدمج على هذه الأجزاء.آر = [64, 34, 25, 12, 22, 11, 90]
        دمج _ تصنيف (آر آر)

      طباعة ("مصفوفة مرتبة:")

      1. لأني في النطاق (لين (آر)):
      2. طباعة ("٪د " ٪ آر [ط]),
      3. إنشاء صفيف يحتاج إلى فرز ، على سبيل المثال [64, 34, 25, 12, 22, 11, 90]. ونحن ندعو وظيفة ميرجيسورت (أر) وتمرير صفيف لذلك. نعرض المصفوفة المصنفة على الشاشة.

      دمج الفرز لديه تعقيد س (ن سجل ن) ، مما يجعلها أكثر كفاءة لمجموعات البيانات الكبيرة.

      من المهم أن تتذكر أن وجود خوارزميات فرز أكثر كفاءة لا يعني أنه يجب عليك دائما استخدامها. في كل حالة ، يجب أن تأخذ في الاعتبار حجم المصفوفة ومتطلبات الأداء وعوامل أخرى.

      أمثلة على استخدام برنامج فرز الصفيف

      فيما يلي بعض الأمثلة التي توضح استخدام برنامج فعال لفرز مصفوفة بترتيب تنازلي لمجموع أرقام الرقم.

      مثال 1

      مجموعة المصدر: [123, 456, 789, 111]

      مجموعة المصدر

      مصفوفة مرتبة

      123

      789

      456

      456