الله يهديك يا فطوم لازم تنادين اخوك
.....
على العموم لتوضيح المسألة اكثر هناك نقطة مهمة في تطبيق اي خوارزمية برمجية تسمى ب worst case والمراد بها اسوء حالة ممكن لتطبيق الخوارزمية او بمعنى اخر اطول وقت يستغرق لتنفيذ الخوارزمية وهذه المسألة مهمة لانه كلما كان worst case لخوارزمية معينة قليل هذا يعني انها خوارزمية ممتازة وسريعة....
المسألة الثانية حساب worst case لخوارزمية Bubble sort التي تعد ابطأ خوارزميات الترتيب المعروفة......
السؤال الان كيف نحسب worst case للخوارزميةBubble sort ؟
هذه هي الخوارزمية.
نموذج كود |
// array of integers to hold values private int[] a = new int[100];
// number of elements in array private int x;
// Bubble Sort Algorithm public void sortArray() { int i; int j; int temp;
for( i = (x - 1); i >= 0; i-- ) { for( j = 1; j <= i; j++ ) { if( a[j-1] > a[j] ) { temp = a[j-1]; a[j-1] = a[j]; a[j] = temp; } } } }
|
كما تلاحظ يوجد في الكود جملتان لل for loop والتي بسببهما يمكن الحكم على سرعة البرنامج فكلما كان loop صغير اصبح البرنامج سريع والعكس...
ستلاحظ ان loop الثاني يتناقص بمقدار واحد كل في كل دورة منها نستنتج المتسلسة الحسابية التالية
n-1)+(n-2) + . . . . . . . .+2+1 = n*(n-2)/2)