الانتقال إلى المحتوى الرئيسي

كيفية فرز مصفوفة بترتيب تصاعدي في باسكال

يعد فرز المصفوفة أحد أكثر العمليات شيوعا في البرمجة. بغض النظر عن لغة البرمجة المختارة ، يواجه كل مطور الحاجة إلى ترتيب عناصر المصفوفة بترتيب تصاعدي أو تنازلي. باسكال هي إحدى لغات البرمجة حيث يمكن حل هذه المهمة بطرق مختلفة.

واحدة من أبسط الطرق وأكثرها قابلية للفهم لفرز مصفوفة بترتيب تصاعدي في باسكال هي استخدام خوارزمية فرز "الفقاعة". تعتمد هذه الخوارزمية على فكرة المقارنة المتسلسلة وإعادة ترتيب العناصر المجاورة بحيث "تطفو" القيم الكبيرة إلى الأعلى ، وتنتهي القيم الأصغر في الأسفل.

لتنفيذ خوارزمية فرز الفقاعة في باسكال ، يجب تنفيذ التسلسل التالي من الخطوات:

1. إنشاء متغير لتخزين القيمة المؤقتة لعنصر صفيف.

2. تنفيذ حلقة متداخلة ، حيث سيتم تنفيذ الحلقة الخارجية حتى يتم فرز جميع عناصر المصفوفة.

3. سيتم تشغيل الحلقة الداخلية من خلال جميع عناصر المصفوفة ، ومقارنة العنصر الحالي مع جاره.

4. إذا كان العنصر الحالي أكبر من العنصر المجاور ، فمن الضروري إعادة ترتيب قيم العنصرين.

5. بعد تنفيذ الحلقة الداخلية ، سينتقل العنصر الأكبر إلى الموضع الأخير في المصفوفة.

6. سوف تتكرر الحلقة الخارجية حتى يتم فرز جميع العناصر.

قد يبدو تنفيذ خوارزمية فرز الفقاعات في باسكال كما يلي:

فار

أنا ، ي ، درجة الحرارة: عدد صحيح;

بيغن

إلى عن على أنا: = 0 إلى ن-1 افعل

إلى عن على ي: = 0 إلى ن-أنا-1 افعل

إذا أ [ي] > أ [ي + 1] ثم

بيغن

درجة الحرارة: = أ [ي];

أ [ي]: = أ[ي+1];

أ [ي + 1]: = درجة الحرارة;

النهاية;

النهاية;

  1. خوارزمية لفرز المصفوفة بترتيب تصاعدي
  2. مثال على تنفيذ الخوارزمية في باسكال
  3. فهم التعقيد الزمني والمكاني للخوارزمية
  4. تحسين خوارزمية الفرز
  5. سؤال وجواب

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

يعد فرز المصفوفة بترتيب تصاعدي أحد أكثر المهام شيوعا في البرمجة. لحل هذه المشكلة ، هناك العديد من الخوارزميات ، لكل منها مزاياها وعيوبها. في هذه المقالة ، سنلقي نظرة على خوارزمية فرز بسيطة وفعالة — "فرز الفقاعات".

تعتمد خوارزمية فرز الفقاعة على مبدأ بسيط: قارن بين عنصرين متجاورين للصفيف وقم بتبديلهما إذا كانا بترتيب خاطئ. كرر هذه العملية حتى يتم فرز المصفوفة بالكامل.

يمكن تمثيل عملية فرز الفقاعة بالخطوات التالية:

  1. نذهب من خلال مجموعة ومقارنة كل زوج من العناصر المجاورة.
  2. إذا كانت العناصر في ترتيب خاطئ ، ونحن مبادلة لهم.
  3. كرر الخطوتين السابقتين حتى يتم فرز المصفوفة بالكامل.

لتنفيذ خوارزمية فرز الفقاعة في باسكال ، يمكنك استخدام الحلقات والمشغلين الشرطيين. مثال على الكود:

الإجراء بابليسورت (فار أر: مجموعة من عدد صحيح);

فار

أنا ، ي ، درجة الحرارة: عدد صحيح;

بيغن

لأني: = 0 إلى طول ( أر) - 2 القيام به

بيغن

ل ي: = 0 إلى طول ( أر) - 2-أفعل

بيغن

إذا أر [ي] > أر [ي + 1] ثم

بيغن

درجة الحرارة: = آر [ي];

أر [ي] := أر [ي + 1 ] ;

أر [ي + 1]: = درجة الحرارة;

النهاية;

النهاية;

النهاية;

النهاية;

بعد تنفيذ هذا الإجراء ، سيتم فرز المصفوفة بترتيب تصاعدي. فرز الفقاعة له تعقيد ا (ن^2) ، أين ن هو عدد العناصر في المصفوفة. هذه الخوارزمية مريحة ومفهومة للمبرمجين المبتدئين.

في الختام ، تعد خوارزمية فرز المصفوفة بترتيب تصاعدي أحد العناصر الرئيسية للبرمجة. يسمح لك بتنظيم البيانات وجعل معالجتها أكثر كفاءة. بعد التعرف على خوارزمية فرز الفقاعات ، يمكنك تطبيقها بسهولة في مشاريعك وحل العديد من مشكلات البرمجة.

مثال على تنفيذ الخوارزمية في باسكال

فيما يلي مثال على تنفيذ الخوارزمية لفرز مصفوفة بترتيب تصاعدي بلغة باسكال:

برنامج سورتاراي;

كونست

ن = 10 ؛ / / حجم الصفيف

فار

صفيف [1..ن] من عدد صحيح ؛ / / مجموعة المصدر

أنا ، ي ، درجة الحرارة: عدد صحيح ؛ / / المتغيرات المساعدة

بيغن

// ملء صفيف المصدر بأرقام عشوائية

لأني: = 1 إلى ن تفعل

آر [أنا]: = عشوائي (100);

// إخراج صفيف المصدر إلى الشاشة

وريتلن ('مصدر صفيف:');

لأني: = 1 إلى ن تفعل

اكتب (آر [أنا]،'');

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

إلى عن على أنا: = 1 إلى ن-1 افعل

ل ي: = 1 إلى ن-أفعل

إذا أر [ي] > أر [ي + 1] ثم

بيغن

// تبديل العناصر

درجة الحرارة: = آر [ي];

[ي]: = [ي+1];

أر [ي + 1]: = درجة الحرارة;

النهاية;

// عرض المصفوفة المصنفة على الشاشة

رايتلن;

وريتلن ('فرز صفيف:');

لأني: = 1 إلى ن تفعل

اكتب (آر [أنا]،'');

النهاية.

هذا البرنامج المثال يخلق مجموعة من 10 أرقام عشوائية ، ثم فرزها في ترتيب تصاعدي باستخدام خوارزمية فرز فقاعة. يتم عرض نتيجة الفرز على الشاشة.

فهم التعقيد الزمني والمكاني للخوارزمية

عند دراسة الخوارزميات وتنفيذها ، من المهم أن نفهم ما هو تعقيدها الزمني والمكاني. يرتبط تعقيد الوقت بعدد العمليات التي تقوم بها الخوارزمية لحل المشكلة. يحدد التعقيد المكاني مقدار الذاكرة المطلوبة لعمل الخوارزمية.

يمكن تقدير التعقيد الزمني للخوارزمية في عدة حالات: الأفضل والأسوأ والمتوسط. تفترض أفضل حالة أن بيانات الإدخال قد تم فرزها بالفعل وأن الخوارزمية يمكنها القيام بالمهمة في الحد الأدنى لعدد العمليات. تشير الحالة الأسوأ إلى الحد الأقصى لعدد العمليات لأسوأ قيمة إدخال. يأخذ متوسط الحالة في الاعتبار الاختلافات في بيانات الإدخال ويؤدي متوسط تعقيد الوقت لجميع الخيارات الممكنة.

يتم تقدير التعقيد المكاني للخوارزمية من خلال مقدار الذاكرة المطلوبة لتنفيذها. قد يشمل ذلك مقدار الذاكرة اللازمة لتخزين المصفوفات والمتغيرات والمداخن وهياكل البيانات الأخرى. يمكن أن يكون التعقيد المكاني ثابتا (ثابتا) أو يعتمد على حجم بيانات الإدخال (الخطي).

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

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

تحسين خوارزمية الفرز

عند العمل مع المصفوفات ، من المهم استخدام خوارزميات فرز فعالة لتسريع عملية معالجة البيانات. فيما يلي عدة طرق لتحسين خوارزمية فرز الصفيف بترتيب تصاعدي:

  1. خوارزمية فرز الفقاعات: يمكنك تقليل عدد التكرارات إذا قمت بتمييز أكبر عنصر بعد كل تكرار واستخدامه كقيد للتكرار التالي. هذا يتجنب الحاجة إلى مقارنة العناصر التي تم فرزها بالفعل في كل تكرار.
  2. خوارزمية فرز الإدراج: يمكنك التحسين باستخدام البحث الثنائي بدلا من البحث المعتاد عن موقع الإدراج. يسمح لك البحث الثنائي بتقليل عدد العمليات لمقارنة العناصر وتحويلها.
  3. خوارزمية فرز الاختيار: يمكن تحسينها عن طريق تقليل عدد التبادلات. بدلا من تبادل العناصر في كل خطوة ، يمكنك وضع علامة على فهرس الحد الأدنى للعنصر واستبداله بالعنصر الحالي فقط ، إذا لزم الأمر.
  4. دمج خوارزمية الفرز: يمكن تحسينه إذا كنت تستخدم فرز الدمج فقط للمصفوفات الفرعية الصغيرة ، وبالنسبة للمصفوفات الأصغر من عتبة معينة ، استخدم خوارزميات أكثر كفاءة مثل فرز الإدراج.

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

سؤال وجواب