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

خوارزميه ترتيب الاعداد

بدأه mido.halawa في 30 يونيو 2012 · 1 رد · 1,400 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله ،، احب ان اقدم خوارزميه لترتيب الاعداد والمساعده فى تطويرها

للعلم انها لا تصلح عند كبر حجم المصفوفه لأنها سوف تحتاج إى ذاكره أكبر

الخوارزميه:

==========

نفرض ان لدين المصفوفه التاليه من الاعداد عدد عناصرها 6

س =( 80 ، 10 ، 100 ، 70 ، 30 ، 90)

شرح عملى للخوارزميه

فى البدايه نفرض المتغير م وهو قيمه الخانه الحاليه فى المصفوفه

والمتغير ص و هو رقم الخانه الحاليه

المتعير bk وهو يخص عدد العناصر فى المصفوفه بعد الترتيب بعد القيمه الحاليه (المفهوم يتصح اكثر فيما بعد )

sk وهو يخص عدد العناصر فى المصفوفه بعد الترتيب قبل القيمه الحاليه

نبدأ بالخانه صفر = ص ، م = 80

نقارن القيمه م بجميع قيم المصفوف بعد المرتبه ص فى المصفوفه

80 = 80 ==> sk++

80 > 10 ==> sk++

80 < 100 ==> bk++

80 > 70 ==> sk++

80 > 30 ==> sk++

80 < 90 ==> bk++

إذا sk = 3

bk = 2

إذا رقم خانه القيمه 80 فى المصفوفه الجديده هو (عدد عناصر المصفوفه القديمه - bk) بإعتبار ان ارقام الخانات يبدأ من 1

أو ( sk + 1 ) كلاهما يحقق نفس النتيجه )

إذا المصفوف الجديده ( ؟؟ ، ؟؟ ،؟؟ ، 80 ، ؟؟ ،؟؟)

يتم تكرار العمل مع الخانه رقم 2 فى المصفوفه القديمه والتى قيمتها 10 وفحصها مع جميع العناصر فى المصفوفه

والمصفوف الجديده (10 ، ؟؟ ، ؟؟ ،80،؟؟ ، ؟؟ )

يتم التكرار مع الخانه رقم 3 فى المصفوفه القديمه والتى قيمتها 100 وفحصها مع جميع العناصر فى المصفوفه

والمصفوفه الجديده (10 ، ؟؟ ، ؟؟ ، 80 ، ؟؟ ، 100 )

كذالك حتى يتم فحص جميع العناصر

حتى يتم ترتيب العناصر فى المصفوفه

===============

والملاحظ ان السرعه فى هذه الخوارزميه بطيئه حيث يلزم مقارنه الخانه بجميع الخانات

وحجم الذاكره المطلوب ثابت = ( حجم الذاكر الخاص بالمصفوفه القديمه + حجم المتغير bk + حجم المتغير sk )

حتى أنه يمكن الاستغناء عن أى من المتغيرين bk أو Sk لأنه يعطى نفس النتيجه

تم تعديل هذه المشاركة بواسطة mido.halawa في 30 يونيو 2012 في 00:32

#2

سيكون أفضل لو كتبت لنا الخوارزمية بلغة برمجة

على كل حال أنت مشكور على جهدك

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

وعيبها الثاني أنها تقارن المتغير مع نفسه

ولا شك أن المصفوفة إذا كبرت أهلك ذلك موارد الجهاز

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

x1 مع x2 x3 x4 x5 x6

x2 مع x3 x4 x5 x6

x3 مع x4 x5 x6

x4 مع x5 x6

x5 مع x6

هذه هي الخوارزمية بلغة الباسكال

procedure SelectSort(var X: array of Integer);
var
  i: Integer;
  j: Integer;
  SmallPos: Integer;
  Smallest: Integer;
begin
  for i:= 0 to High(X) -1 do 
  begin
    SmallPos:= i;
    Smallest:= X[SmallPos];
    for j:= i + 1 to High(X) do 
      if X[j] < Smallest then
      begin
        SmallPos:= j;
        Smallest:= X[SmallPos];
      end;
      X[SmallPos]:= X;
      X:= Smallest;
  end;
end;

تم تعديل هذه المشاركة بواسطة linuxman في 30 يونيو 2012 في 09:17

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

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