"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > برنامج PHP لأكبر مبلغ فرعي متجاور

برنامج PHP لأكبر مبلغ فرعي متجاور

نشر في 2025-02-16
تصفح:656

ما هو PHP؟

PHP (معالج النص التشعبي) هي لغة برمجة على نطاق واسع من جانب الخادم لتطوير الويب. يسمح للمطورين بتضمين التعليمات البرمجية داخل ملفات HTML ، مما يتيح إنشاء صفحات ويب ديناميكية وتفاعلات مع قواعد البيانات. تشتهر PHP بقدراتها على البساطة ، وتعدد استخداماتها ، وقدرات التكامل الواسعة مع قواعد البيانات الشائعة. إنه يوفر مجموعة واسعة من الامتدادات ولديه مجتمع كبير من المطورين ، مما يضمن موارد ودعم وافرة.

برنامج PHP لأكبر مجموع فرعي متجاورة

PHP Program for Largest Sum Contiguous Subarray

4 (-1) 2 1 = 6

الحد الأقصى المتجاوس هو = 6

باستخدام خوارزمية كادان

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

تعمل الخوارزمية عن طريق مسح الصفيف بشكل متكرر والحفاظ على متغيرين: max_so_far و max_ending_here. إليك كيفية عمل الخوارزمية:

  • تهيئة متغيرات max_so_far و max_ending_here إلى العنصر الأول من الصفيف أو إلى حد أدنى من القيمة (على سبيل المثال ، php_int_min) إذا كانت الصفيف تحتوي على أرقام سالبة.

  • تكرار من خلال الصفيف من العنصر الثاني فصاعدًا.

  • لكل عنصر ، قم بتحديث max_ending_here عن طريق إضافة العنصر الحالي إليه.

  • إذا أصبح max_ending_here سلبيًا ، فقم بإعادة ضبطه إلى 0 لأن تضمين العنصر الحالي في المستعر الفرعي سيقلل من المبلغ.

  • إذا كان max_ending_here أكبر من max_so_far ، قم بتحديث max_so_far مع الحد الأقصى الجديد.

  • كرر الخطوات من 3 إلى 5 للعناصر المتبقية من الصفيف.

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

  • إرجاع max_so_far كنتيجة.

خوارزمية Kadane لها تعقيد زمني لـ O (n) ، حيث يكون n هو حجم الصفيف ، لأنها تتطلب فقط تمريرة واحدة عبر الصفيف. هذا يجعله حلاً فعالًا لإيجاد الحد الأقصى للمجموع الفرعي المتجاوب.

مثال


الإخراج

Maximum contiguous sum is 6

باستخدام نموذج الخوارزمية: البرمجة الديناميكية

مثال


الإخراج

Maximum contiguous sum is 6

نهج آخر مع فهارس البدء والنهاية

مثال

";
	echo "Starting index ". $start . "
". "Ending index " . $end . "
"; } // Driver Code $a = array(-2, 1, -3, 4, -1, 2, 1, -5, 4); $n = sizeof($a); $max_sum = maxSubArraySum($a, $n); ?>

الإخراج

Maximum contiguous sum is 6 
Starting index 3 
Ending index 6

خاتمة

يستخدم برنامج PHP لإيجاد أكبر سهم فرعي متجاورة باستخدام البرمجة الديناميكية وخوارزمية Kadane. يتم استخدام نهج البرمجة الديناميكية لحل المشكلة بكفاءة عن طريق تقسيمها إلى مشاكل فرعية أصغر وتخزين الحلول في صفيف.

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

من خلال الاستفادة من البرمجة الديناميكية وخوارزمية كادان ، يحقق البرنامج تعقيدًا زمنيًا لـ O (n) ، حيث N هو حجم الصفيف. هذا يضمن حلاً فعالًا لإيجاد أكبر مبلغ فرعي متجاور في PHP.

بيان الافراج تمت إعادة طباعة هذه المقالة على: https://www.tutorialspoint.com/php-program-for-larger-sum-subarray إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3