18
ات ان ي ب ل ا ب ي ك را ت اَ ّ ر لف ا ق ي ف ود ر م ح م. % / ا ساق م ل مدرس ا اَ ّ ر لف ا ق ي ف ود ر م ح م. % / ا ساق م ل مدرس ا ومات ل ع م ل ا ا ي ج و ل و ي ك ن و وت س حا ل وم ا ل ع م س ف ات ان ي ب ل واعد ا ق و ات> ي ج م ر لب وم ا ل ن ص د ص خ تاد عدH ا ة ي م ل ع ل ا مادة ل ا اَ ّ ر لف ا ق ي ف ود ر م ح م. % اhttp://mfarra.cst.ps 2010-2011 ةO ي ل اO ي ل ا وحدة لR ا ة ي س سا% الأ ب ي ت ر لب ا ات ي م ررR وا خ

تراكيب البيانات

  • Upload
    ingo

  • View
    198

  • Download
    22

Embed Size (px)

DESCRIPTION

قسم علوم الحاسوب و تكنولوجيا المعلومات تخصص دبلوم البرمجيات و قواعد البيانات. الوحدة الثالثـة خوارزميات الترتيب الأساسيـة. تراكيب البيانات. المادة العلمية إعداد أ. محمود رفيق الفـــرَّا http://mfarra.cst.ps. مدرس المساق/ أ . محمود رفيق الفـــرَّا. 2010-2011. محاور المحاضرة. تمهيد - PowerPoint PPT Presentation

Citation preview

Page 1: تراكيب البيانات

البيانات تراكيب

. / ا الفـــر� رفيق محمود أ المساق . مدرس / ا الفـــر� رفيق محمود أ المساق مدرس

المعلومات تكنولوجيا و الحاسوب علوم قسمالبيانات قواعد و البرمجيات دبلوم تخصص

إعداد العلمية المادةا. الفـــر% رفيق محمود http://mfarra.cst.psأ

2010-2011

الثالثـة الوحدةاألساسيـة الترتيب خوارزميات

Page 2: تراكيب البيانات

المحاضرة محاور

تمهيد( الهوائية الفقاعات (Bubble Sortخوارزمية( للترتيب االختيار (Selection Sortخوارزمية( للترتيب اإلدراج (Insertion Sortخوارزمية

2

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

Page 3: تراكيب البيانات

نحيــا ربنـا بذكرك

الضرر من الله يقيه أن أراد لمن الذكر

3

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

بسم الله الذي ال يضر مع اسمه شيء في األرض وال

في السماء و هو السميع العليم

بسم الله الذي ال يضر مع اسمه شيء في األرض وال

في السماء و هو السميع صلى العليم الله رسول أن عنه الله رضي عفان بن عثمان بن إبان عن

( : الذي الله بسم يمسي أو يصبح حين قال من قال وسلم عليه اللهالسميع هو و السماء في وال األرض في شيء اسمه مع iيضر ال

مرات( ثالث شيء العليم يضره .لمصحيح

Page 4: تراكيب البيانات

تمهيد

على تنفيذها يتم التي العمليات أهم و أبرز منيعرف ما البيانات تراكيب داخل المخزنة البيانات

العناصر العناصر و ترتيب عن .البحث العمل في بالغ إيجابي أثر من لها لما ذلك و

االقتصادي. لجعل البيانات تراكيب من العديد تطوير تم قد و

. سرعة و سهولة أكثر العمليات هذه تنفيذ الجهود من الخوارزميات استحداث يعتبر و

4

Page 5: تراكيب البيانات

الترتيب؟ خوارزميات من الهدف ما

ترتيب على العمل إلى الترتيب خوارزميات تهدفأشكال أحد ضمن المخزنة العناصر من مجموعة

, كيفية على vبناء يتم الترتيب و البيانات تراكيب... , , , أبجدي تنازلي تصاعدي فمثال محددة

الترتيب خوارزميات من أخرى عن خوارزمية تتميز وو الوقت حيث من الخوارزمية تعقيد مدى في

. المطلوبة التخزينية المساحة

5

Page 6: تراكيب البيانات

Bubble Sortخوارزمية 6

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

العناصر مقارنة على الخوارزمية هذه تعتمدعمل, يتم المقارنة هذه على vبناء مع المتجاورة

. تنازلي أو تصاعدي سواء الترتيب المرور إلى فيه نحتاج الخوارزميات من النوع هذا و

عدد يساوي مرات بعدد المخزنة البيانات علىواحد ) منه مطروحا المخزنة ذلك(, n-1العناصر و

األحوال أسوء األحوال؟ )في أسوء بـ المقصود (ما

( الخوارزمية هذه تعقيد حيث Complexity = )О(n2)درجة.nأن% ترتيبها المراد العناصر عدد هي

Page 7: تراكيب البيانات

خوارزمية Bubble Sort

7

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

الصورة مصدرhttp://vsmecollege.blogspot.com/2010/05/bubble-sort-bash-shell-programming-with.html

Page 8: تراكيب البيانات

Bubble Sortخوارزمية 8

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. for ( int pass = 1, pass < العناصر ( ++pass ,عدد

2. for ( int i = 0; i < العناصر 1- عدد ; i++ )

3. if ( b[ i ] > b[ i + 1 ] )

4. Swap(b[ i ], b[ i +1] );

المرور لتكرار نستخدمه األول السطر في التكرار. ترتيبها المراد العناصر على

كل فحص لتكرار يستخدم الثاني السطر في التكرار . , دوران كل في يتم هذا و متجاورين عنصرين

Page 9: تراكيب البيانات

على Bubble Sortخوارزمية المصفوفة

9

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. static void Main(string[] args)2. {3. int[] id = { 12, 30, 1, 4, 7, 2 };4. Console.Write(" Elements of Array Before Sorting ");5. for (int x = 0; x < id.Length; x++)6. Console.Write(" " + id[x]);7. Console.WriteLine(" ");8. for (int i =0; i< id.Length; i++)9. for (int j =0; j< id.Length-1; j++)10. if (id[j] > id[j + 1])11. {12. int hold = id[j];13. id[j] = id[j + 1];14. id[j + 1] = hold; }15. Console.Write(" Elements of Array After Sorting ");16. for (int x = 0; x < id.Length; x++)17. Console.Write(" "+id[x]); }

1. static void Main(string[] args)2. {3. int[] id = { 12, 30, 1, 4, 7, 2 };4. Console.Write(" Elements of Array Before Sorting ");5. for (int x = 0; x < id.Length; x++)6. Console.Write(" " + id[x]);7. Console.WriteLine(" ");8. for (int i =0; i< id.Length; i++)9. for (int j =0; j< id.Length-1; j++)10. if (id[j] > id[j + 1])11. {12. int hold = id[j];13. id[j] = id[j + 1];14. id[j + 1] = hold; }15. Console.Write(" Elements of Array After Sorting ");16. for (int x = 0; x < id.Length; x++)17. Console.Write(" "+id[x]); }

المصفوفة ترتيبتصاعديـا

في رغبنا حال فيسنقوم تنازلياشرط بعكسفي الفحص

رقم 10السطرليصبح

if (id[j] < id[j + 1])

Page 10: تراكيب البيانات

Selection Sortخوارزمية 10

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

عنصر أصغر عن البحث على الخوارزمية هذه تعتمد. المناسب, ترتيبه في وضعه يتم تالي

عن البحث يتم التكرار دورات من دورة كل ففي , العثور عند و المصفوفة من تبقى فيما عنصر أصغر

استبدال عمل يتم العنصر swapعليه بين و بينههكذا و الدورة رقم صاحب الموضع في الموجود

. مرتبة عناصر على نحصل حتى( الخوارزمية هذه تعقيد حيث Complexity = )О(n2)درجة

.nأن% ترتيبها المراد العناصر عدد هي

Page 11: تراكيب البيانات

Selection Sortخوارزمية 11

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

Page 12: تراكيب البيانات

Selection Sortخوارزمية 12

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. static void Main(string[] args)2. {3. int[] a = { 10, 2, 34, 4, 3, 1, 100 };4. int hold;5. for (int i = 0; i < a.Length; i++) {6. for (int j = i + 1; j < a.Length; j++)7. if (a[j] < a[i]) {8. hold = a[j];9. a[j] = a[i];10. a[i] = hold; } }11. for (int k = 0; k < a.Length; k++)12. Console.WriteLine(a[k]);13. Console.Read(); }

1. static void Main(string[] args)2. {3. int[] a = { 10, 2, 34, 4, 3, 1, 100 };4. int hold;5. for (int i = 0; i < a.Length; i++) {6. for (int j = i + 1; j < a.Length; j++)7. if (a[j] < a[i]) {8. hold = a[j];9. a[j] = a[i];10. a[i] = hold; } }11. for (int k = 0; k < a.Length; k++)12. Console.WriteLine(a[k]);13. Console.Read(); }

Page 13: تراكيب البيانات

Insertion Sortخوارزمية 13

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

, يستخدمها التي النمطية الطريقة هي اإلدراج خوارزمية , العناصر جمع على تعتمد فهي أشياءهم لترتيب الناس

, و اآلخر تلو واحدا العناصر أخذ في نبدأ ثم ترتيبها المراد , الترتيب إلى نصل حتى هكذا و المناسب ترتيبه في نضعه

النهائي. /الدورة بعد إال موضعه تغيير يتم ال األول العنصر مالحظـة

, و الوحيد يعتبر فهو البداية في بينما األقل على األولى , عنصر ظهر إن فقط تحريكه يتم و مناسب موضعه بالتالي

. منه أصغر بعد فيما( الخوارزمية هذه تعقيد أن% Complexity = )О(n2)درجة nحيث

. ترتيبها المراد العناصر عدد هي

Page 14: تراكيب البيانات

Insertion Sortخوارزمية 14

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

Page 15: تراكيب البيانات

Insertion Sortخوارزمية 15

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

وكيبيديا: المصدر

Page 16: تراكيب البيانات

مع Insertion Sortخوارزمية المصفوفة

16

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

1. static void Main(string[] args) {2. int[] a = { 10, 2, 34, 4, 3, 1, 100 };3. int inner, temp;4. for (int outer = 1; outer < a.Length; outer++)5. {6. temp = a[outer];7. inner = outer;8. while (inner > 0 && a[inner - 1] >= temp)9. {10. a[inner] = a[inner - 1];11. inner = inner -1; }12. a[inner] = temp; }13. Console.WriteLine();14. for (int k = 0; k < a.Length; k++)15. Console.WriteLine(" " + a[k]);16. Console.Read(); }

1. static void Main(string[] args) {2. int[] a = { 10, 2, 34, 4, 3, 1, 100 };3. int inner, temp;4. for (int outer = 1; outer < a.Length; outer++)5. {6. temp = a[outer];7. inner = outer;8. while (inner > 0 && a[inner - 1] >= temp)9. {10. a[inner] = a[inner - 1];11. inner = inner -1; }12. a[inner] = temp; }13. Console.WriteLine();14. for (int k = 0; k < a.Length; k++)15. Console.WriteLine(" " + a[k]);16. Console.Read(); }

Page 17: تراكيب البيانات

للخوارزميات التعقيد درجة مقارنةالثالث

17

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

Bubble: #Compares: O(n2) #Swaps: O(n2)

Selection: #Compares: O(n2) #Swaps: O(n)

Insertion #Compares: O(n2) #Shifts: O(n2)

Page 18: تراكيب البيانات

أشكركم18

. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود

... كلها للعلوم مفتاح السؤالالجاذبيــة ... قوانين إلى وصل التفاحـة وقعت لماذا سأل عندما نيوتن أن تذكر