عيون العرب - ملتقى العالم العربي

العودة   عيون العرب - ملتقى العالم العربي > عيــون الأقسام العلمية > علوم و طبيعة > علم البرمجيات

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 05-20-2019, 01:33 PM
 
Exclamation 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


رد مع اقتباس
  #2  
قديم 05-20-2019, 06:50 PM
 
ممنوع وضع اكثر من موضوعين في اليوم

يغلق ل 24 ساعة#
__________________





أريقاتو لايت مون ع الهدية ( ♡ ^ ♡) لوف يو ♡






صراحة


Tohsaka Rin






-




رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
قلمٌ ذهبي ~ 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


الساعة الآن 10:09 AM.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
شات الشلة
Powered by: vBulletin Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لعيون العرب
2003 - 2011