Mini how to sort :
#1 Bubble sort
original link #:http://programming-fr34ks.net/forum/...?showtopic=416
الموضوع متتابع والرجاء عدم الردود والاستفسارات بالقسم
تحياتنا لكل الناس
افترض قبل اي شيئ انك ليك معرفة باللغه
نبدا باول شيئ في الترتيب ترتيب الفقاعه كما يقولون .بكره العربي.
بيعتمد علي ايه الترتيب ده ؟ ايه الطريقه الي تقدر ترتب بيها مصفوفه بالطريقه ديت ؟
الطريقه الي حد ما فعاله لكن لا تستطيع ان تقول عليها احسن طريقه
في البدايه تخيل مصفوفوه من 10 عناصر كالاتي
يعني اول عنصر 10 وتاني عنصر 9 وهكذا لاحظ ان اول عنصر رقم الفهرس الخاص به 0 وليس واحد
كيف نقوم بترتيب تلك المصفوفه تنازليا
ال bubble sort تقنيته كالاتي بيفصل زوجين من العناصر
تخيل ان i هو الفهرس للمصفوفه وبيشير لاول قيمه وهي 10 وقيمة لفهرس لها 0
وتاني عنصر منطقيا هو i+1
حجم المصفوفه كله وعدد عناصرها = n-1 مع العلم ان n = 10 لان وكما قلنا من قبل ان اول فهرس هو 0 وليس واحد
نبدا بترتيب المصفوفه
اذا كان العنصر i اكبر من العنصر i+1 قم بابدال الاماكن بينهم ثم اذد قيمة i
اصبحت الان i=1 استمر علي هذا اذا كان i اكبر من i+1 قم بابدال الاماكن واكمل الي ان نصل الي النهايه وبذلك يكون اكبر عنصر
موجود في اخر القائمه في المكان n-1
نحتاج الان الي ترتيب باقي العناصر
الان نقم باعادة الخطوه مع n-2 وبذلك نتجاوز اخر العناصر الذي تم ترتيبه مسبقا وهكذا الي ان نصل الي قيمة n=0
كيف نقوم بتطبيق هذا الامر في الواقع ؟
#1 Bubble sort
original link #:http://programming-fr34ks.net/forum/...?showtopic=416
الموضوع متتابع والرجاء عدم الردود والاستفسارات بالقسم
تحياتنا لكل الناس
افترض قبل اي شيئ انك ليك معرفة باللغه
نبدا باول شيئ في الترتيب ترتيب الفقاعه كما يقولون .بكره العربي.
بيعتمد علي ايه الترتيب ده ؟ ايه الطريقه الي تقدر ترتب بيها مصفوفه بالطريقه ديت ؟
الطريقه الي حد ما فعاله لكن لا تستطيع ان تقول عليها احسن طريقه
في البدايه تخيل مصفوفوه من 10 عناصر كالاتي
كود PHP:
int a[10] = {10,9,8,7,6,5,4,3,2,1};
كيف نقوم بترتيب تلك المصفوفه تنازليا
ال bubble sort تقنيته كالاتي بيفصل زوجين من العناصر
تخيل ان i هو الفهرس للمصفوفه وبيشير لاول قيمه وهي 10 وقيمة لفهرس لها 0
وتاني عنصر منطقيا هو i+1
حجم المصفوفه كله وعدد عناصرها = n-1 مع العلم ان n = 10 لان وكما قلنا من قبل ان اول فهرس هو 0 وليس واحد
نبدا بترتيب المصفوفه
اذا كان العنصر i اكبر من العنصر i+1 قم بابدال الاماكن بينهم ثم اذد قيمة i
اصبحت الان i=1 استمر علي هذا اذا كان i اكبر من i+1 قم بابدال الاماكن واكمل الي ان نصل الي النهايه وبذلك يكون اكبر عنصر
موجود في اخر القائمه في المكان n-1
نحتاج الان الي ترتيب باقي العناصر
الان نقم باعادة الخطوه مع n-2 وبذلك نتجاوز اخر العناصر الذي تم ترتيبه مسبقا وهكذا الي ان نصل الي قيمة n=0
كيف نقوم بتطبيق هذا الامر في الواقع ؟
كود PHP:
void swap(int *x , int *b)
{
int tmp;
tmp = *x;
*x = *b;
*b = tmp;
}
void bubble(int list[] , int ele )
{
int i , j;
for(i=0 ; i<(ele-1) ; i++)
for(j=0 ; j <(ele-(i+1)) ; j++)
{
if(list[j] > list[j+1])
swap(&list[j] , &list[j+1]);
}
}