#1
| ||
| ||
Bubble Sort Algorithm نتابع فى هذا الموضوع خوارزمية Bubble Sort Algorithm و هى احدى اشهر خوازميات الترتيب Sorting . هدف هذه الخوارزمية هو ترتيب عناصر مصفوفة اما ترتيب تصاعدى او تنازلى. انها من ابسط الخوارزميات و هى من خوارزميات المقارنة. فكرة هذه الخوارزمية هى : ملحوظة: يجب تحديد ان كنت تريد الترتيب تصاعدى ام تنازلى. المصفوفة قبل الترتيب: افتراضيا فى حلنا سيكون تصاعدى. 1- نمر على عناصر المصفوفة جميعا 2- عندما نجد عنصر اصغر من العنصر الذى يسبقه(قبله) نقوم بتبديلهما. 3- نمر هكذا على جميع عناصر المصفوفة حتى ننهى الدورة الاولى. 4- نعيد المرور على عناصر المصفوفة مرة اخرى و نرى ان كان هناك احد العناصر اصغر مما يسبقه و نبدلهما حتى ننهى هذه الدورة. 5- نعيدها مرارا و تكرارا حتى ننتهى تماما من ترتيبها. الدورة الاولى ====== الدورة الثانية ====== ========================================= كود دالة الترتيب bubblesort Code 1: كود: //bubblesort functionvoid bubblesort(int a[], const int SIZE){ for (int pass=1; pass < SIZE; pass++) //loop to specify number of passes { for (int j=0; j < SIZE-1; j++) //shorter loop to check elements of array { if (a[j] > a[j+1]) //if element > following element then swap(a[j],a[j+1]); //swap them } }} السطر 3: بداية الدالة function arguments: array, SIZE of array السطر 4: حلقة loop لتحديد عدد الدورات التى سوف نمر بها على المصفوفة السطر 7: حلقة loop اقصر للمرور على جميع عناصر المصفوفة و مقارنتها ببعضها السطر 9-10 : جملة If شرطية تحدد اذا كان عنصر اكبر مما يليه يتم تبديلهما بالدالة swap ============================================ كود دالة طباعة النتائج print Code 2: كود: //print functionvoid print(int a[],const int SIZE){ for (int i = 0; i < SIZE; i++) //loop for passing over all array elements and { //printing them cout << a[i] << " "; } cout << endl;} السطر 3: تعريف الدالة function parameters: array, SIZE of array السطر 5 --< 8 : انشاء حلقة loop لطباعة جميع عناصر المصفوفة ============================ كود دالة التبديل swap Code 3:=cpp>=cpp> كود: //swap functionvoid swap(int& x, int& y){ int temp; temp = x; x = y; y = temp;} السطر 3: تعريف الدالة function parameters: x,y passed by reference coz we want to change their valus لقد قمنا بتمرير x,y بـــ reference المرجع لأننا نريد تغيير قيمهما السطر5--<8 : تعريف المتغير temp الذى يستخدم فى تبديل قيم x,y ======================= اخيرا كود دالتنا الرئيسية main Code 4:=cpp>=cpp>=cpp> كود: #include<iostream>using namespace std;void bubblesort(int[], int); //function prototypevoid print(int[], int); //function prototypevoid swap(int&, int&); //function prototype//main functionint main(){ const int SIZE = 10; [color= #include<iostream> using namespace std; void bubblesort(int[], int); //function prototype void print(int[], int); //function prototype void swap(int&, int&); //function prototype//main function int main() { const int SIZE = 10; //constant for sizing array int a[SIZE]= {10,7,18,15,9,4,13,11,21,3}; //defining array and its elements cout << "Before BubbleSorting: [color= #A31515; font-weight: bold;]n"; print(a,SIZE); //printing array elements before sorting bubblesort(a,SIZE); //sorting elements of the array cout << "After BubbleSorting: [color= #A31515; font-weight: bold;]n"; print(a, SIZE); //printing elements after sorting system("pause"); return 0; } السطر 4 --< 6: تعريف functions prototypes ليستخدمها المترجم فى التعرف على الدوال السطر 11: تعريف ثابت لتحديد حجم المصفوفة السطر 12: تعريف المصفوفة و ملئها ببعض البيانات السطر 13 - 14: طباعة عناصر المصفوفة قبل الترتيب السطر 15: تطبيق دالة الترتيب على عناصر المصفوفة السطر 16-17: عرض عناصر المصفوفة بعد الترتيب ================================ الى هنا انتهى شرح الخوارزمية و تطبيقها بــكود معشوقتنا ++C اى مشكلة او تعليق على الكود يرجى اضافتها و مناقشتها مع بقية الاعضاء ارجو ان يكون وفقنى الله تعالى فى هذا الشرح البسيط للخورازمية ملاحظة: الكود مرفق كاملا لمن يجد مشكلة فى الكود المكتوب فى الموضوع وفقكم الله=cpp>=cpp>=cpp> bubble_sort.rar |
مواقع النشر (المفضلة) |
| |
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
قلمٌ ذهبي ~ Sort | رواية سورت | AquaRose7 | روايات و قصص الانمي | 92 | 02-14-2023 06:26 AM |
Linear Search Algorithm | DEMONOID-X | علم البرمجيات | 0 | 05-20-2019 01:23 PM |
Binary Search Algorithm نادر ^^^ | DEMONOID-X | علم البرمجيات | 0 | 05-20-2019 01:19 PM |
Manufacturer of biodegradable packaging, bubble ai | sfdsuokj4g7z | أرشيف المواضيع الغير مكتمله او المكرره او المنقوله و المخالفه | 0 | 04-08-2011 12:56 PM |