Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

‫كميـــــــــــــة تقنيـــــــــــة المعمومـــــــــات‬ ‫رمز المقرر‪ITG220 :‬‬ ‫المقرر‪ :‬تراكيب البيانات ‪Data structure I‬‬

‫وفـ ـ ـ ـ اء المصباحي‬
‫المحاضر‪ :‬أ‪ .‬ـ ـ ـ ـ‬
‫‪Lecture #8‬‬ ‫) ‪( from page 1 to 6‬‬ ‫مصدر المعلومات‪ :‬ملخص المحاضرة ‪ +‬الشرح على السبورة ‪ +‬المراجع‬

‫الترتيب ‪Sorting‬‬

‫‪ 2.3‬تعرف الترتيب (التصنيف) ‪: Sorting‬‬


‫هً عملٌة ترتٌب وتنظٌم البٌانات حسب الطرٌقة المطلوبة للترتٌب‪ .‬وٌصنف الترتٌب ‪ sorting‬إلى التصنٌفات التالٌة‪:‬‬

‫‪ .1‬الترتٌب الداخلً ‪ :Internal sorting‬وهً تتعامل مع البٌانات المخزنة فً الذاكرة الرئٌسٌة ‪. RAM‬‬
‫‪ .2‬الترتٌب الخارجً ‪ :External sorting‬وهً تتعامل مع البٌانات المخزنة فً ملفات خارجٌة ‪ ، External files‬هذه‬
‫الطرٌقة تستخدم عندما ٌكون حجم البٌانات كبٌر جداً وال تستطٌع الذاكرة الرئٌسٌة ‪ RAM‬تخزٌنها‪.‬‬

‫‪ .1‬الترتيب الفقاعي ‪:Bubble Sort‬‬


‫ٌتطلب ‪ n-1‬من المراحل لترتٌب المصفوفة‪.‬‬ ‫‪‬‬
‫فً كل مرحلة العنصر ]‪ٌ a[i‬قارن بالعنصر ]‪ ، a[i+1‬إذا ]‪ a[i]>a[i+1‬فً هذه الحالة ٌتم التبدٌل ‪ ، swap‬مما‬ ‫‪‬‬
‫ٌسبب للعنصر األكبر ‪ largest element‬من الصعود إلى الموقع الذي دلٌله أكبر فً المصفوفة ‪ .‬وفً نهاٌة‬
‫المرحلة األولى ‪ٌ pass1‬صل العنصر األكبر إلى نهاٌة المصفوفة ‪ .‬وفً المرحلة التالٌة ‪ ،‬العنصر األكبر التالً‬
‫ٌصل إلى الموقع ‪ n-1‬فً المصفوفة‪ .‬وتستمر عملٌة المقارنة حتى ٌتم ترتٌب المصفوفة‪.‬‬

‫‪Page 1‬‬
‫كميـــــــــــــة تقنيـــــــــــة المعمومـــــــــات‬ ‫رمز المقرر‪ITG220 :‬‬ ‫المقرر‪ :‬تراكيب البيانات ‪Data structure I‬‬
‫وفـ ـ ـ ـ اء المصباحي‬
‫المحاضر‪ :‬أ‪ .‬ـ ـ ـ ـ‬
‫‪Lecture #8‬‬ ‫) ‪( from page 1 to 6‬‬ ‫مصدر المعلومات‪ :‬ملخص المحاضرة ‪ +‬الشرح على السبورة ‪ +‬المراجع‬

‫‪Page 2‬‬
‫كميـــــــــــــة تقنيـــــــــــة المعمومـــــــــات‬ ‫رمز المقرر‪ITG220 :‬‬ ‫المقرر‪ :‬تراكيب البيانات ‪Data structure I‬‬
‫وفـ ـ ـ ـ اء المصباحي‬
‫المحاضر‪ :‬أ‪ .‬ـ ـ ـ ـ‬
‫‪Lecture #8‬‬ ‫) ‪( from page 1 to 6‬‬ ‫مصدر المعلومات‪ :‬ملخص المحاضرة ‪ +‬الشرح على السبورة ‪ +‬المراجع‬

‫برنامج كامل لمترتيب الفقاعي ‪: Complete Program for Bubble sort‬‬

‫>‪#include <stdio.h‬‬

‫)‪void bubblesort(int a[], int size‬‬


‫{‬

‫;‪int temp, i, j‬‬

‫)‪for (i=0; i<size-1; i++‬‬

‫)‪for (j=0; j<size-1-i; j++‬‬

‫)]‪if (a[j]>a[j+1‬‬

‫{‬

‫;]‪temp = a[j‬‬

‫;]‪a[j] = a[j+1‬‬

‫;‪a[j+1] = temp‬‬

‫}‬

‫}‬

‫‪Page 3‬‬
‫كميـــــــــــــة تقنيـــــــــــة المعمومـــــــــات‬ ITG220 :‫رمز المقرر‬ Data structure I ‫ تراكيب البيانات‬:‫المقرر‬
‫وفـ ـ ـ ـ اء المصباحي‬
‫ ـ ـ ـ ـ‬.‫ أ‬:‫المحاضر‬
Lecture #8 ( from page 1 to 6 ) ‫ المراجع‬+ ‫ الشرح على السبورة‬+ ‫ ملخص المحاضرة‬:‫مصدر المعلومات‬

int main()

int a[50], n, i;

printf("How many elements in the array(max 50)?: ");

scanf("%d", &n);

printf ("Enter array elements");

for (i=0; i<n; i++)

scanf("%d", &a[i]);

bubblesort(a, n);

printf ("-----The sorted array is--------------");

for (i=0; i<n; i++)

printf("%d ", a[i]);

printf("n");

return 0;

Page 4
‫كميـــــــــــــة تقنيـــــــــــة المعمومـــــــــات‬ ‫رمز المقرر‪ITG220 :‬‬ ‫المقرر‪ :‬تراكيب البيانات ‪Data structure I‬‬
‫وفـ ـ ـ ـ اء المصباحي‬
‫المحاضر‪ :‬أ‪ .‬ـ ـ ـ ـ‬
‫‪Lecture #8‬‬ ‫) ‪( from page 1 to 6‬‬ ‫مصدر المعلومات‪ :‬ملخص المحاضرة ‪ +‬الشرح على السبورة ‪ +‬المراجع‬

‫‪ .2‬الترتيب االختياري ‪:Selection Sort‬‬


‫ٌتطلب ‪ n-1‬من المراحل لترتٌب المصفوفة‪.‬‬ ‫‪‬‬
‫فً المرحلة األولى ‪ٌ ، the first pass‬تم إٌجاد العنصر األصغر من ]‪ a[0], a[1], a[2], … a[n-1‬وٌتم تبدٌله مع‬ ‫‪‬‬
‫العنصر األول ]‪. a[0‬‬
‫فً المرحلة الثانٌة ‪ٌ ، the second pass‬تم إٌجاد العنصر األصغر من ]‪ a[1], a[2], … a[n-1‬وٌتم تبدٌله مع‬ ‫‪‬‬
‫العنصر الثانً ]‪. a[1‬‬
‫وهكذا ‪ ...‬نستمر فً المراحل حتى ٌتم ترتٌب المصفوفة بالكامل‪.‬‬ ‫‪‬‬

‫‪Example:‬‬

‫‪40‬‬

‫‪Page 5‬‬
‫كميـــــــــــــة تقنيـــــــــــة المعمومـــــــــات‬ ‫رمز المقرر‪ITG220 :‬‬ ‫المقرر‪ :‬تراكيب البيانات ‪Data structure I‬‬
‫وفـ ـ ـ ـ اء المصباحي‬
‫المحاضر‪ :‬أ‪ .‬ـ ـ ـ ـ‬
‫‪Lecture #8‬‬ ‫) ‪( from page 1 to 6‬‬ ‫مصدر المعلومات‪ :‬ملخص المحاضرة ‪ +‬الشرح على السبورة ‪ +‬المراجع‬

‫‪Page 6‬‬

You might also like