اذهب إلى المحتوى

السؤال

نشر

Course Project: Sorting algorithms/ design, time analysis and discussion
Project
In this Project, you will use sorting algorithms to sort 3 different sets of generated input data,
namely:
1- Random data
2- Sorted data
3- Sorted data in reverse order
This work took theoretical and empirical studies that have been done over the past weeks on sorting
algorithms and corresponding variants. The study includes a comparative study of sorting
algorithms (Insertion sort, Merge sort, Quick sort and the Counting Sort) as given in class.
Input: 5 large sets of input integers. Leave the size of the set to be determined by the user. i.e.
Enter the size of set # 1: <10000>
Enter the size of set # 2: ...
...
then select one of the 3 cases listed above.
Procedure: Find the running time of each algorithm on all input sets (3 cases listed above)
Output: Record your output in an excel sheet (one table)
Visualization: Plot the recorded times for all algorithms with the corresponding sizes on the
same graph (3 graphs for the 3 cases listed above). You may use excel tools to plot your graphs

Recommended Posts

  • 0
نشر

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

أولاً أنت بحاجة إلى حل المشروع في لغة C++ واستخدام طريقة التكرار (iteration) لتنفيذ خوارزميات الترتيب المختلفة (Insertion sort، Merge sort، Quick sort، Counting Sort) على المجموعات المختلفة من البيانات، وسنقوم بالتالي:

1- عليك بتعريف خوارزميات الترتيب المختلفة المطلوب استخدامها (Insertion sort، Merge sort، Quick sort، Counting Sort)، فقم بتنفيذ كل خوارزمية بطريقة التكرار (iteration) بحيث تقوم بفرز المجموعات العشوائية.

2- إنشاء دوال لتوليد البيانات العشوائية (random data)، البيانات المرتبة (sorted data) والبيانات المرتبة بالترتيب العكسي (reverse-sorted data) بناءً على الحجم الذي يدخله المستخدم.

3- اسأل المستخدم لكل مجموعة عن حجمها (عدد العناصر التي يرغب في توليدها).

4- لكل مجموعة من البيانات (random data، sorted data، reverse-sorted data)، قم بتنفيذ كل خوارزمية وقياس الوقت الذي استغرقه الفرز باستخدام دالة قياس الوقت مثل clock().

5- تسجيل نتائج قياس الوقت لكل مجموعة بيانات ولكل خوارزمية في ملف إكسل (Excel sheet). يمكنك استخدام مكتبة خارجية مثل "libxl" لكتابة البيانات في ملف Excel.

6- استخدم Excel tools لرسم النتائج المسجلة على شكل رسوم بيانية، برسم ثلاثة مخططات بيانية منفصلة لكل مجموعة من البيانات (random data، sorted data، reverse-sorted data) تُظهِر أداء كل خوارزمية بحسب حجم المجموعة.

وبالطبع تستطيع مكتبات خارجية لتسهيل بعض الأمور مثل الرسم البياني وكتابة البيانات في ملف Excel (مثل matplotlib لـ C++ أو gnuplot) لتجسيد النتائج بدلاً من استخدام Excel إذا كان الأمر ممكنًا، ولكن المطلوب الأساسي هو تنفيذ خوارزميات الترتيب بطريقة التكرار وقياس الوقت الذي تستغرقه هذه الخوارزميات على المجموعات المختلفة من البيانات.

 

  • 0
نشر

سوف اقوم بتوضيح الخطوات العامه لتنفيذ المطلوب ويمكنك بدء تنفيذه انت واذا وجدت مشكلة اثناء كتابة الكود فيمكننا مساعدتك

يجب عليك اتباع تلك الخطوات

  1. تعريف الدوال اللازمة لتنفيذ كل من الخوارزميات الفرز المطلوبة (Insertion Sort، Merge Sort، Quick Sort، و Counting Sort).
  2. تنفيذ دوال توليد البيانات (عشوائية، مرتبة، مرتبة بالعكس) باستخدام الدوال المعرفة في الخطوة الأولى.
  3. تنفيذ دالة لقياس وقت تنفيذ الخوارزميات باستخدام المكتبة chrono التي توفر دقة في قياس الوقت.
  4. قراءة حجم مجموعة البيانات (عدد العناصر) من المستخدم.
  5. تنفيذ الخوارزميات على كل من مجموعات البيانات (عشوائية، مرتبة، مرتبة بالعكس) باستخدام الدوال المناسبة.
  6. قياس زمن تنفيذ كل خوارزمية على كل مجموعة بيانات.
  7. تسجيل النتائج (زمن التنفيذ) في جدول Excel.
  8. تجهيز البيانات المسجلة للتصور البياني، حيث سيتم رسم ثلاثة مخططات منفصلة لكل من الحالات (عشوائية، مرتبة، مرتبة بالعكس) تظهر زمن تنفيذ الخوارزميات مقابل حجم مجموعة البيانات.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...