ترجمة آلية تحت المراجعة
نوع
المصدر الأصليقائمة تنفيذ التمرين
تُحفظ علامات هذه القائمة على هذا الجهاز والمتصفح فقط. أنشئ حسابًا مفعّلًا لحفظ إنجاز التمرين في مسارك.
نوع
مشكلة بحاجة إلى حل
تذكر من المحاضرة أننا رأينا بعض الخوارزميات لفرز سلسلة من الأرقام: فرز التحديد، وفرز الفقاعات، وفرز الدمج.
- يتكرر فرز التحديد عبر الأجزاء غير المصنفة من القائمة، مع تحديد أصغر عنصر في كل مرة ونقله إلى موقعه الصحيح.
- يقوم الفرز الفقاعي بمقارنة أزواج من القيم المتجاورة واحدة تلو الأخرى وتبديلها إذا كانت بالترتيب غير الصحيح. يستمر هذا حتى يتم فرز القائمة.
- يؤدي فرز الدمج إلى تقسيم القائمة إلى قسمين بشكل متكرر ثم دمج القوائم الأصغر مرة أخرى في قائمة أكبر بالترتيب الصحيح.
في هذه المشكلة، ستقوم بتحليل ثلاثة برامج فرز (مجمعة!) لتحديد الخوارزميات التي يستخدمونها. في ملف اسمه answers.txt في مجلد يسمى sortسجل إجاباتك مع شرح كل برنامج عن طريق ملء الفراغات المحددة TODO.
رمز التوزيع
بالنسبة لهذه المشكلة، ستحتاج إلى بعض "رمز التوزيع" - أي رمز مكتوب بواسطة موظفي CS50. يتم توفير ثلاثة برامج C تم تجميعها بالفعل، sort1, sort2و sort3، بالإضافة إلى العديد .txt ملفات للإدخال وملف آخر، answers.txt، لتكتب فيها إجاباتك. كل من
يطبق sort1, sort2و sort3 خوارزمية فرز مختلفة: الفرز بالتحديد، أو الفرز الفقاعي، أو الفرز المدمج (ولكن ليس بالضرورة بهذا الترتيب!). مهمتك هي تحديد خوارزمية الفرز التي يستخدمها كل ملف. ابدأ بتنزيل هذه الملفات.
تنزيل ملفات التوزيع
مفتوح cs50.dev.
ابدأ بالنقر داخل النافذة الطرفية، ثم قم بالتنفيذ cd بمفرده. يجب أن تجد أن "المطالبة" الخاصة بها تشبه ما يلي.
$
انقر داخل تلك النافذة الطرفية ثم قم بالتنفيذ
wget https://cdn.cs50.net/2026/x/psets/3/sort.zip
متبوعًا بـ Enter لتنزيل ملف مضغوط يسمى sort.zip في مساحة الشيفرة الخاصة بك. احرص على عدم إغفال المسافة بينهما wget وعنوان URL التالي، أو أي حرف آخر في هذا الشأن!
نفذ الآن
unzip sort.zip
لإنشاء مجلد يسمى sort. لم تعد بحاجة إلى ملف ZIP، حتى تتمكن من التنفيذ
rm sort.zip
ثم قم بالرد بـ "y" متبوعًا بـ Enter عند المطالبة لإزالة ملف ZIP الذي قمت بتنزيله.
تلميحات
اكتشف .txt الملفات
- متعددة
يتم توفير ملفات
.txtلك. تحتوي هذه الملفاتnسطور من القيم، إما معكوسة أو مختلطة أو مرتبة.- على سبيل المثال،
reversed10000.txtيحتوي على 10000 سطر من الأرقام التي تم عكسها10000، بينماrandom50000.txtيحتوي على 50000 سطر من الأرقام بترتيب عشوائي.
- على سبيل المثال،
- الأنواع المختلفة ل
قد تساعدك ملفات
.txtفي تحديد أي نوع. فكر في كيفية أداء كل خوارزمية مع القائمة التي تم فرزها بالفعل. ماذا عن القائمة المعكوسة؟ أو قائمة مختلطة؟ قد يكون من المفيد العمل من خلال قائمة أصغر من كل نوع والمشي خلال كل عملية فرز.
حدد الوقت لكل عملية فرز بمدخلات مختلفة
- لتشغيل عمليات الفرز على الملفات النصية، قم بتشغيلها في الجهاز
./[program_name] [text_file.txt]. تأكد من أنك قد استفدتcdللانتقال إلىsortالدليل!- على سبيل المثال، للفرز
reversed10000.txtمعsort1، اركض./sort1 reversed10000.txt.
- على سبيل المثال، للفرز
- قد تجد أنه من المفيد تحديد وقت لأنواعك. للقيام بذلك، تشغيل
time ./[sort_file] [text_file.txt].- على سبيل المثال، يمكنك الجري
time ./sort1 reversed10000.txtللتشغيلsort1على 10000 رقم معكوس. في نهاية مخرجات جهازك الطرفي، يمكنك إلقاء نظرة علىrealالوقت لمعرفة مقدار الوقت المنقضي فعليًا أثناء تشغيل البرنامج.
- على سبيل المثال، يمكنك الجري
الإرشادات التفصيلية
لست متأكدًا من كيفية الحل؟
كيفية الاختبار
صحة
check50 cs50/problems/2026/x/sort
كيفية الإرسال
في جهازك الطرفي، قم بتنفيذ ما يلي لإرسال عملك، والإجابة على المطالبات التي تظهر أيضًا.
submit50 cs50/problems/2026/x/sort