اقتباس:
المشاركة الأصلية كتبت بواسطة yalova
أخي أنا لم أطلب الخوارزمية بل طلبت شرح الطريقة
وشكـــــــــــــــراا
|
مبدا
tri par comptage
هو تريب جدول او مصفوفة
من اجل هذا نحتاج الى قراءة جدول او مصفوفة
ثانيا نحتاج الى مقارنة القيم
فالقيمة الاولى للجدول نقارنها مع كل القيم الاخرى فاذا وجدنا قيمة اصغر منها نقوم بعمل تبديل بين القيم
permutation
وهكذا
ثم ناخذ القيمة الثانثة من الجدول
من الواضح اننا لا نحتاج الى ان نقارنها مع القيمة التي قبلها لانها اصغر منها نقارنها مع كل القيم واذا وجدنا قيمة اصغر منها ننقوم بعمل تبديل
اذا تلاحظ فيها هذا الالغوريتم فاننا نحتاج الى دالتين من نوع
for
الدالة الاولى تقوم بتثبيت قيمة الجدول التي نريد مقارنتها ونستعمل فيها المبدا التالي
for i:=1 to n-1
هذه الدالة تقوم باخذ قيمة الجدول فقط
نلاحظ اننا اخذنا
n-1
ولم ناخذ
n
iهذا نفمه من الدالة الثانثة
نلاحظ ان الدالة الثانية تنطلق من
i+1 to n
لماذا
لاننا لا نحتاج الى مقارنة قيمة
i
مع نفسها
فاذا كانت قيمة
i=3
n=10
فاننا نقارن القيمة الثالثة من الجدول مع القيم 4-5-6-7-8-9-10
من اجل هذا استعملنا
i+1
الدالة الاولى انتهت عند
n-1
والدالة الثانثة انتهت عند
n
لماذا؟
حتى نقارن بين القيم
فاذا انتهت قيمة الدالة الاولى عند
n
فان الدالة الاثنة لن تقوم بمقارنة قيمة
n
من اجل اجل هذا نجعل الدالة الاولى تنتهي عند
n-1
والتي تساوي 9
فالدالة الثانية تسمح بمقارنة القيمة 9 للجدول مع القيمة العاشرة
اذا كانت القيمة التاسعة اصغر من العشارة تبقي على نفس الترتيب واذا كانت اكبر تغير الترتيب
فتصبح القيمة التاسعة في المكان العاشرة والقيمة العاشرة في المكان التاسع
لفهم اكثر
سوف اعطيك اللغوريتم وارجوا ان تضعه في برنامج
اللغوريتم لديك الان قم ببرمجته