الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]ترتيب المصفوفه

بدأه طموحة بلا حدود في 24 فبراير 2013 · 1 رد · 839 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني

اريد شرح مفصل لهذا الكود

هو كود ترتيب مصفوفه   اريد فقط ان اعرف طريقه عمل ال  for الاولى والثانيه بالتفصيل

اي تتبع ال for  خطوه خطوه

وهذا الكود:

 

[background='']#includeusing namespace std;int main(){int k=0,a[5];for(int i=1;i<=5;i++){cout<<"enter elements of array"<cin>>a;}for(int i=1;i<=5;i++)for(int j=1;j<=5;j++)if(a>a[j]){k=a;a=a[j];a[j]=k;}cout<<"the array after sorting"<for(int i=1;i<=5;i++)cout< return 0;}[/background]<;;

تم تعديل هذه المشاركة بواسطة محمد عودة في 1 مارس 2013 في 19:11

كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!

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

#2

يبدو الكود كبرنامج Bubble Sort و لكن في ابسط صورة ومن دون اي تحسين او اختصار لجملة التكرار، الكود باختصار يقارن كل عنصر في المصفوفه ببقية العناصر ، فإذا كان العنصر اكبر من العنصر الذي يقارن معه يتم تغيير مكان مع العنصر الاخر وهكذا

 

مثلا إذا كانت المصفوفه بهذا الشكل 4 7 2 5 1 3

 

سيتم مقارنة 3 اولا مع 1 وبما ان 1 اصغر يتم تبديل اماكن العنصرين لتصبح 4 7 2 5 3 1

 

ثم يتم مقارنة 1 مع 3 5 2 7 4 ، لماذا اصبحت المقارنة مع الــ 1 بدلا من 3؟ لان 1 الان هو في مكان 3 في حين ان جملة التكرار تقارن بالــ index وفي بداية حلقة التكرار الخارجية تكون قيمة i هي 0 ،

اي في نهاية الحلقة الداخلية التي تعتمد على j سوف نكون على يقين من الــ index 0 يوجد به اصغر عنصر، ومن ثم تتغير قيمة i وفي الحلقة الثانية لــ i يصبح الــindex 1 او الثاني يحتوي على ثاني اصغر قيمة وهكذا .

 

طبعا يمكن عمل تحسين optimization لهذه الخوازميه لانه ليس من الضروري مقارنة العنصر بكل العناصر كل مره، مثلا في الحلقه الثانية لــi لا حاجة لنا لنقارن الــindex 0 مع موقع i الذي هو 1 لان الامر سوف يكون مكرر.

 

طبعا هناك طرق اخرى للترتيب اكثر سرعة وفعالية من هذه الطريقه لان الطريقه هذه لها تعقيد O(N^2)  بينما توجد طرق ترتيب اسرع منها Merge Sort, Shell Sort, Quick Sort, Quick Sort 3

 

لمزيد من المعلومات و لتوضيح طرق الترتيب بشكل تفعالي Interactive

 

انظر هذا الموقع

 

http://www.sorting-algorithms.com/

تم تعديل هذه المشاركة بواسطة محمد عودة في 1 مارس 2013 في 19:14 — السبب: نسق LTR

1

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

مواضيع مشابهة