في البرمجة ، غالبا ما تكون هناك مواقف تحتاج فيها إلى العثور على الحد الأدنى للقيمة في مجموعة من الأرقام. توفر لغة البرمجة سي أدوات مختلفة للعمل مع المصفوفات والبحث عن الحد الأدنى للقيمة. في هذه المقالة ، سننظر في عدة طرق لتنفيذ هذه المهمة باستخدام لغة سي.
الطريقة الأولى هي استخدام حلقة بسيطة. يمكننا التكرار من خلال جميع عناصر المصفوفة ومقارنتها بالقيمة الدنيا الحالية. إذا كان الرقم التالي أقل من الحد الأدنى الحالي ، نقوم بتحديث القيمة. بعد الانتهاء من الدورة ، نحصل على الحد الأدنى للقيمة.
}
العودة دقيقة;
- }
- الطريقة الثالثة هي استخدام وظيفة كسورت (). وظيفة كسورت () يسمح لك لفرز عناصر مجموعة. يمكننا استخدامه لفرز المصفوفة بترتيب تصاعدي ثم إرجاع العنصر الأول من المصفوفة كقيمة دنيا.
- نموذج التعليمات البرمجية:
- إنت فيندمين (إنت أر [] ، إنت حجم) {
قسورت (أر ، حجم ، حجم (إنت) ، قارن);
عودة آر [0];
}
أنت الآن على دراية بعدة طرق للعثور على الحد الأدنى للقيمة في صفيف باستخدام لغة ج. يعتمد اختيار طريقة معينة على سياق ومتطلبات برنامجك.
باستخدام حلقة للعثور على الحد الأدنى للقيمة
إعلان وتهيئة متغير لتخزين قيمة الحد الأدنى
مقارنة كل عنصر من عناصر المصفوفة بالقيمة الدنيا الحالية
هل من الممكن العثور على الحد الأدنى لعدد في مجموعة دون استخدام حلقة?
كثافة العمليات الرئيسية () {
كثافة العمليات دقيقة = صفيف [0] ؛ / / تهيئة متغير
ل (إنت أنا = 1 ؛ أنا < الحجم ؛ أنا {) {
إذا (صفيف [أنا] < دقيقة) {
دقيقة = صفيف [أنا] ؛ / / تحديث الحد الأدنى للقيمة
- في هذا المثال ، نعلن مصفوفة
- صفيف
وتحديد حجمها باستخدام
بعد ذلك ، نستخدم حلقة
من مين متغير
. إذا كان العنصر الحالي أقل
من قيمة الحد الأدنى
، ثم نقوم بتحديث القيمة
دقيقة
هي القيمة الدنيا الجديدة.
في نهاية الحلقة ، نقوم بطباعة الحد الأدنى للقيمة على الشاشة باستخدام
وظيفة برينتف
.
نتيجة لتنفيذ هذا الرمز ، سيتم إخراج الحد الأدنى للقيمة في المصفوفة.
إعلان وتهيئة متغير لتخزين قيمة الحد الأدنى
للعثور على الحد الأدنى للرقم في صفيف باستخدام لغة ج ، يجب عليك إعلان وتهيئة متغير يقوم بتخزين الحد الأدنى للقيمة. سيتم تحديث هذا المتغير مع كل تكرار لعناصر المصفوفة.
أولا نعلن متغير ، على سبيل المثال,
مينفالو
، باستخدام
الكلمة الرئيسية كثافة العمليات
.
بيانات كثافة العمليات
النوع يعني أن المتغير سيخزن قيمة عدد صحيح.
ثم قم بتهيئة هذا المتغير بقيمة العنصر الأول من المصفوفة. إذا كانت المصفوفة غير فارغة ، فستكون القيمة الدنيا مساوية للعنصر الأول. على سبيل المثال:
كثافة العمليات مينفالو = آر [0];
هنا
آر
هو اسم المصفوفة ، و
[0]
هو مؤشر العنصر الأول. لاحظ أن فهرسة عناصر المصفوفة تبدأ من 0.
بعد تهيئة المتغير
- مينفالو
- سيحتوي على الحد الأدنى لقيمة جميع العناصر في المصفوفة. بعد ذلك ، يمكنك استخدام هذا المتغير للمقارنة مع قيم عناصر المصفوفة الأخرى وتحديثه إذا تم العثور على قيمة أقل من الحد الأدنى الحالي.
- مقارنة كل عنصر من عناصر المصفوفة بالقيمة الدنيا الحالية
- هناك طرق مختلفة لإيجاد الحد الأدنى للقيمة في المصفوفة. أحد هذه الأساليب هو مقارنة كل عنصر من عناصر المصفوفة بالقيمة الدنيا الحالية وتحديث القيمة الدنيا عند العثور على عنصر أقل من القيمة الدنيا الحالية.
لتنفيذ هذا النهج ، يجب عليك أولا تحديد متغير لتخزين القيمة الدنيا الحالية وتعيين قيمة أولية مساوية للعنصر الأول من المصفوفة.
ثم يمكنك استخدام حلقة للتكرار من خلال جميع العناصر الأخرى للمصفوفة. داخل الحلقة ، تحتاج إلى مقارنة كل عنصر بالقيمة الدنيا الحالية وتحديث قيمة المتغير إذا تم العثور على عنصر أقل من القيمة الدنيا الحالية.
نتيجة لذلك ، بعد الحلقة ، سيحتوي المتغير لتخزين القيمة الدنيا الحالية على القيمة الدنيا المطلوبة.
Реализация алгоритма может выглядеть следующим образом на языке C:
#include
int main() {
int arr[] = {9, 3, 7, 1, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
printf("Минимальное число в массиве: %d
", min);
return 0;
}
في هذا المثال ، لدينا صفيف آر تتكون من خمسة عناصر ومتغير ن ، والذي يحتوي على عدد العناصر في المصفوفة. ثم نحدد المتغير الأدنى ونعين له قيمة أولية تساوي العنصر الأول من المصفوفة.
بعد ذلك ، نستخدم الحلقة للتكرار من خلال جميع العناصر الأخرى للمصفوفة ، بدءا من العنصر الثاني. داخل الحلقة ، نقارن كل عنصر بالقيمة الدنيا الحالية ، وإذا لزم الأمر ، نقوم بتحديث قيمة المتغير الأدنى.
بعد الانتهاء من الحلقة ، يمكننا عرض القيمة الدنيا التي تم العثور عليها باستخدام وظيفة برينتف.
وبالتالي ، فإن استخدام مقارنة بين كل عنصر من عناصر المصفوفة مع الحد الأدنى الحالي للقيمة يسمح لك بالعثور على الحد الأدنى للرقم في المصفوفة دون فرز أو أي عمليات إضافية.
تحديث الحد الأدنى للقيمة إذا كان العنصر الحالي أصغر
للعثور على الحد الأدنى للقيمة في مصفوفة باستخدام لغة ج ، يجب عليك التحقق بالتسلسل من كل عنصر من عناصر المصفوفة وحفظ الحد الأدنى للقيمة. في هذا القسم ، سننظر في كيفية تحديث الحد الأدنى للقيمة إذا كان العنصر الحالي أقل من الحد الأدنى.
قم بتهيئة المتغير الأدنى بقيمة العنصر الأول من المصفوفة.
حلقة من خلال العناصر المتبقية من الصفيف.
لكل عنصر أر[ط] ، تحقق ما إذا كان أقل من قيمة دقيقة الحالية.
إذا كان عنصر أر [أنا] أقل من دقيقة ، تحديث قيمة المتغير مين إلى أر[أنا].
هنا مثال على رمز ج الذي يوضح استخدام هذا النهج:
# تشمل
كثافة العمليات الرئيسية () {
إنت آر[] = {5, 2, 9, 1, 7};
إنت ن = سيزوف ( أر) / سيزوف (أر[0]);
كثافة العمليات دقيقة = آر [0];
ل (إنت أنا = 1 ؛ أنا < ن ؛ أنا {) {
إذا (آر [أنا] < دقيقة) {
دقيقة = آر [أنا];
}
}
برينتف ("الحد الأدنى للقيمة: ٪ د
"،دقيقة);
العودة 0;
}
نتيجة لتنفيذ هذا الرمز ، سيتم إخراج الحد الأدنى للقيمة في المصفوفة: 1.
وبالتالي ، في كل مرة نمر فيها عبر عناصر المصفوفة ، نقارن العنصر الحالي بالقيمة الدنيا المخزنة ، وإذا كان العنصر الحالي أصغر ، فقم بتحديث القيمة الدنيا.
- هنا مثال على التعليمات البرمجية:
- # تشمل
- ل (إنت أنا = 1 ؛ أنا < طول ؛ أنا i) {
- }
}
برينتف ("الحد الأدنى للعدد: ٪ د" ، دقيقة);
العودة 0;
}
في هذا المثال ، أنشأنا مصفوفة صفيف ووجدنا طولها باستخدام عملية الحجم. ثم قمنا بتهيئة المتغير الأدنى بقيمة العنصر الأول من صفيف الصفيف [0]. بعد ذلك ، باستخدام حلقة ، نذهب من خلال جميع عناصر المصفوفة ، ومقارنتها بالقيمة الحالية للدقيقة وتحديث الحد الأدنى للقيمة إذا تم العثور على رقم أقل من الحد الأدنى السابق. في النهاية ، نعرض الحد الأدنى للرقم الموجود على الشاشة باستخدام وظيفة برينتف.
هناك طريقة أخرى وهي فرز المصفوفة وتحديد الحد الأدنى للقيمة في بداية المصفوفة المصنفة. تعقيد خوارزمية فرز الصفيف في الحالة المتوسطة هو س (نلوغن) ، ومع ذلك ، فإن اختيار الحد الأدنى للقيمة بعد الفرز يحدث في وقت ثابت من س(1). وبالتالي ، فإن التعقيد الكلي للخوارزمية سيكون س (نلوغن).
نتيجة لذلك ، يعتمد اختيار كيفية العثور على الحد الأدنى للقيمة في المصفوفة على المهمة المحددة وحجم المصفوفة. إذا كان حجم المصفوفة صغيرا ، فيمكن أن يكون التكرار البسيط فعالا جدا. في حالة المصفوفات الكبيرة ، قد يكون من الأفضل استخدام متغير أو فرز.
مثال على كيفية عمل البرنامج للعثور على الحد الأدنى للقيمة
يوجد أدناه مثال على كيفية عمل برنامج ج للعثور على الحد الأدنى للرقم في مصفوفة معينة.
مجموعة المدخلات: