Upload
ingo
View
198
Download
22
Embed Size (px)
DESCRIPTION
قسم علوم الحاسوب و تكنولوجيا المعلومات تخصص دبلوم البرمجيات و قواعد البيانات. الوحدة الثالثـة خوارزميات الترتيب الأساسيـة. تراكيب البيانات. المادة العلمية إعداد أ. محمود رفيق الفـــرَّا http://mfarra.cst.ps. مدرس المساق/ أ . محمود رفيق الفـــرَّا. 2010-2011. محاور المحاضرة. تمهيد - PowerPoint PPT Presentation
Citation preview
البيانات تراكيب
. / ا الفـــر� رفيق محمود أ المساق . مدرس / ا الفـــر� رفيق محمود أ المساق مدرس
المعلومات تكنولوجيا و الحاسوب علوم قسمالبيانات قواعد و البرمجيات دبلوم تخصص
إعداد العلمية المادةا. الفـــر% رفيق محمود http://mfarra.cst.psأ
2010-2011
الثالثـة الوحدةاألساسيـة الترتيب خوارزميات
المحاضرة محاور
تمهيد( الهوائية الفقاعات (Bubble Sortخوارزمية( للترتيب االختيار (Selection Sortخوارزمية( للترتيب اإلدراج (Insertion Sortخوارزمية
2
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
نحيــا ربنـا بذكرك
الضرر من الله يقيه أن أراد لمن الذكر
3
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
بسم الله الذي ال يضر مع اسمه شيء في األرض وال
في السماء و هو السميع العليم
بسم الله الذي ال يضر مع اسمه شيء في األرض وال
في السماء و هو السميع صلى العليم الله رسول أن عنه الله رضي عفان بن عثمان بن إبان عن
( : الذي الله بسم يمسي أو يصبح حين قال من قال وسلم عليه اللهالسميع هو و السماء في وال األرض في شيء اسمه مع iيضر ال
مرات( ثالث شيء العليم يضره .لمصحيح
تمهيد
على تنفيذها يتم التي العمليات أهم و أبرز منيعرف ما البيانات تراكيب داخل المخزنة البيانات
العناصر العناصر و ترتيب عن .البحث العمل في بالغ إيجابي أثر من لها لما ذلك و
االقتصادي. لجعل البيانات تراكيب من العديد تطوير تم قد و
. سرعة و سهولة أكثر العمليات هذه تنفيذ الجهود من الخوارزميات استحداث يعتبر و
4
الترتيب؟ خوارزميات من الهدف ما
ترتيب على العمل إلى الترتيب خوارزميات تهدفأشكال أحد ضمن المخزنة العناصر من مجموعة
, كيفية على vبناء يتم الترتيب و البيانات تراكيب... , , , أبجدي تنازلي تصاعدي فمثال محددة
الترتيب خوارزميات من أخرى عن خوارزمية تتميز وو الوقت حيث من الخوارزمية تعقيد مدى في
. المطلوبة التخزينية المساحة
5
Bubble Sortخوارزمية 6
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
العناصر مقارنة على الخوارزمية هذه تعتمدعمل, يتم المقارنة هذه على vبناء مع المتجاورة
. تنازلي أو تصاعدي سواء الترتيب المرور إلى فيه نحتاج الخوارزميات من النوع هذا و
عدد يساوي مرات بعدد المخزنة البيانات علىواحد ) منه مطروحا المخزنة ذلك(, n-1العناصر و
األحوال أسوء األحوال؟ )في أسوء بـ المقصود (ما
( الخوارزمية هذه تعقيد حيث Complexity = )О(n2)درجة.nأن% ترتيبها المراد العناصر عدد هي
خوارزمية Bubble Sort
7
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
الصورة مصدرhttp://vsmecollege.blogspot.com/2010/05/bubble-sort-bash-shell-programming-with.html
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] );
المرور لتكرار نستخدمه األول السطر في التكرار. ترتيبها المراد العناصر على
كل فحص لتكرار يستخدم الثاني السطر في التكرار . , دوران كل في يتم هذا و متجاورين عنصرين
على 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])
Selection Sortخوارزمية 10
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
عنصر أصغر عن البحث على الخوارزمية هذه تعتمد. المناسب, ترتيبه في وضعه يتم تالي
عن البحث يتم التكرار دورات من دورة كل ففي , العثور عند و المصفوفة من تبقى فيما عنصر أصغر
استبدال عمل يتم العنصر swapعليه بين و بينههكذا و الدورة رقم صاحب الموضع في الموجود
. مرتبة عناصر على نحصل حتى( الخوارزمية هذه تعقيد حيث Complexity = )О(n2)درجة
.nأن% ترتيبها المراد العناصر عدد هي
Selection Sortخوارزمية 11
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
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(); }
Insertion Sortخوارزمية 13
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
, يستخدمها التي النمطية الطريقة هي اإلدراج خوارزمية , العناصر جمع على تعتمد فهي أشياءهم لترتيب الناس
, و اآلخر تلو واحدا العناصر أخذ في نبدأ ثم ترتيبها المراد , الترتيب إلى نصل حتى هكذا و المناسب ترتيبه في نضعه
النهائي. /الدورة بعد إال موضعه تغيير يتم ال األول العنصر مالحظـة
, و الوحيد يعتبر فهو البداية في بينما األقل على األولى , عنصر ظهر إن فقط تحريكه يتم و مناسب موضعه بالتالي
. منه أصغر بعد فيما( الخوارزمية هذه تعقيد أن% Complexity = )О(n2)درجة nحيث
. ترتيبها المراد العناصر عدد هي
Insertion Sortخوارزمية 14
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
Insertion Sortخوارزمية 15
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
وكيبيديا: المصدر
مع 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(); }
للخوارزميات التعقيد درجة مقارنةالثالث
17
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
Bubble: #Compares: O(n2) #Swaps: O(n2)
Selection: #Compares: O(n2) #Swaps: O(n)
Insertion #Compares: O(n2) #Shifts: O(n2)
أشكركم18
. / أ إعداد العلمية المادة البيانات تراكيب مساقا الفــر% رفيق محمود
... كلها للعلوم مفتاح السؤالالجاذبيــة ... قوانين إلى وصل التفاحـة وقعت لماذا سأل عندما نيوتن أن تذكر