تخطي إلى المحتوى الرئيسي
شكرًا لزيارتك — تصفّح الموقع، أو أخبرنا برأيك.خدماتناالمدونةاتصل بناسجّل في Mostutor — أول 1000 مسجّل يحصلون على 3 أشهر مجانًا
علوم حاسوب GCSE والمستوى المتقدم

ترميز O الكبيرة: لماذا يُصبح كودك أبطأ (أو لا) كلما نمت البيانات

Sudershan Soniبقلم Sudershan Soni 4 September 2026 7 دقائق قراءة

يمكن لقطعتي كود إنتاج نتائج متطابقة على حالة اختبار صغيرة والتصرف بشكل مختلف تماماً بمجرد وصول بيانات حقيقية. ترميز O الكبيرة هو كيف يصف علماء الحاسوب ذلك الفرق بدقة — ليس بتوقيت الكود على جهاز واحد، الذي يعتمد على العتاد ويصبح قديماً، بل بوصف رياضياً كيف يتوسّع عدد العمليات مع نمو حجم الإدخال.

تعمّق A-Level

ماذا تعني "O" فعلياً

تصف O الكبيرة معدل نمو الخوارزمية — كيف تتوسّع عدد العمليات مع تكبّر حجم الإدخال، المُسمّى تقليدياً n. تُهمل عمداً العوامل الثابتة والحدود الأصغر، لأن السؤال الذي صُمّمت للإجابة عليه ليس "ما سرعة هذا على عتاد اليوم بهذا الإدخال بالضبط"، بل "كيف يتوسّع هذا" — سؤال لا تعتمد إجابته على أي حاسوب تُشغّله عليه.

معدلات النمو التي تهم فعلياً

تُغطّي حفنة من معدلات النمو تقريباً كل خوارزمية ستواجهها، من الأفضل إلى الأسوأ مع نمو البيانات:

  • O(1) — ثابت. عدد الخطوات نفسه بغض النظر عن حجم الإدخال، مثل التحقق مما إذا كانت قائمة فارغة.
  • O(log n) — لوغاريتمي. تنمو العمليات ببطء شديد مع نمو n — البحث الثنائي في قائمة مُرتّبة، على سبيل المثال، الذي يُنصّف مساحة البحث مع كل خطوة.
  • O(n) — خطي. ضاعف الإدخال، ضاعف العمل — مثل مسح كل عنصر في قائمة غير مُرتّبة مرة واحدة.
  • O(n²) — تربيعي. ضاعف الإدخال، ينفجر العمل أربعة أضعاف — نموذجي لمقارنة كل عنصر بكل عنصر آخر، مثل فاحص تكرار ساذج.
input size (n) →operationsO(n²)O(n)O(log n)O(1)

عند n الصغيرة تبدو هذه المنحنيات متشابهة — الفجوة التي تُقرر أي خوارزمية تنجو فعلياً من بيانات العالم الحقيقي تصبح واضحة فقط بمجرد أن يكبر n، وهذا بالضبط النطاق الذي صُمّمت O الكبيرة لوصفه.

Try it yourself — drag the slider to change the input size (n), and watch how many operations each growth rate actually needs.

n = 1n = 1,000

Input size: n = 10

O(1)
1
O(log n)
4
O(n)
10
O(n²)
100

At n = 10, an O(n²) approach needs 100 operations — 10× more than the O(n) approach doing the exact same job.

خوارزمية تربيعية، O(n²)، تُنفّذ 100 عملية لـ10 عناصر تُنفّذ 1000000 عملية لـ1000 عنصر — ليس 100 ضعف العمل مقابل 100 ضعف البيانات، بل 10000 ضعف.

سؤال بنمط الامتحان

تستغرق خوارزمية 8 عمليات لـ4 عناصر، و32 عملية لـ8 عناصر، و128 عملية لـ16 عنصرًا. حدد معدل نمو Big O الخاص بها، مع توضيح استدلالك. [3 درجات]

إظهار الإجابة النموذجية وتوزيع الدرجات
  1. قارن الحالات المتتالية حيث يتضاعف n: 4 ← 8، و8 ← 16 (درجة واحدة)
  2. يتضاعف عدد العمليات أربع مرات في كل مرة: 8 ← 32 (×4)، و32 ← 128 (×4) (درجة واحدة)
  3. عندما يؤدي مضاعفة n إلى مضاعفة عدد العمليات أربع مرات (×4 = ×2²)، فهذه هي السمة المميزة للنمو التربيعي: O(n²) (درجة واحدة)

ما يركّز عليه الممتحن: حدد النمط المحدد بين مضاعفات n والمضاعِف الناتج في عدد العمليات — هذه النسبة (هنا، ×4 مع كل مضاعفة) هي التي تحدد فعليًا معدل النمو، وليست الأرقام الخام وحدها.

خطأ شائع: افتراض نمو خطي لمجرد أن الأرقام «تتزايد باستمرار»، دون التحقق من علاقة المضاعفة التي تميز O(n) (×2 مع كل مضاعفة لـ n) عن O(n²) (×4 مع كل مضاعفة).

لماذا تهم الفجوة بين معدلات النمو عملياً

ببيانات اختبار صغيرة، قد تُنهي خوارزمية O(n²) وخوارزمية O(n log n) كلتاهما في جزء من الثانية — الفرق غير مرئي. كبّر الإدخال نفسه إلى الحجم الذي يتعامل معه منتج حقيقي فعلياً (مليون سجل مستخدم، مليون صف في استعلام قاعدة بيانات)، ويمكن لنهج O(n²) أن يستغرق ساعات فعلية حيث يستغرق نهج O(n log n) ثوانٍ. هذا بالضبط سبب إمكانية أن تُوقف خوارزمية "عملت جيداً في الاختبار" نظام إنتاج حقيقي فعلياً بمجرد وصول استخدام حقيقي — معدل النمو الأساسي كان سيلحق بها دائماً، فقط لم يفعل ذلك بعد بالحجم الذي اختُبر به.

لماذا يهم هذا بما يتجاوز كتابة كود صحيح

يمكن لأي مبرمج كتابة كود يُنتج الإجابة الصحيحة. كتابة كود لا يزال يُنتج الإجابة الصحيحة بسرعة كافية بمجرد وصول بيانات حقيقية تتطلب فهم، مسبقاً، كيف سيتوسّع نهج ما — وO الكبيرة هي المفردات التي بُني بها ذلك التفكير. إذا كانت علوم الحاسوب شيئاً تحتاج أنت أو طفلك إلى شرحه بتفكير حقيقي حول لماذا نهج أفضل من آخر، لا مجرد الصيغة النحوية، فهذا بالضبط ما يقدمه تدريسنا لعلوم الحاسوب GCSE والمستوى المتقدم، ويمكنك رؤية مسار التعلم الكامل هنا.

أسئلة شائعة

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

صُمّمت O الكبيرة عمداً للإجابة على سؤال محدد واحد — كيف يتوسّع وقت التشغيل مع نمو الإدخال كثيراً — وتهم الثوابت أقل فأقل كلما كبر n. خوارزمية تستغرق 5n خطوة وأخرى تستغرق n خطوة كلتاهما O(n): بالنسبة لـ n صغير قد يهم عامل الـ5 عملياً، لكن مع نمو n إلى الملايين، الفرق بين O(n) و O(n²) يُقزّم أي عامل ثابت. O الكبيرة ليست القصة الكاملة للأداء — يهتم المهندسون الحقيقيون بالثوابت فعلياً — لكنها تتنبأ بشكل صحيح بأي خوارزمية تفوز بمجرد أن تكبر البيانات كفاية، وهذا عادة السؤال الأهم.

هل O الأصغر دائماً الخيار الأفضل عملياً؟

ليس تلقائياً — بالنسبة للإدخالات الصغيرة فعلياً، يمكن لخوارزمية بـO أسوأ لكن عامل ثابت أصغر بكثير أن تعمل أسرع فعلياً، لأن نقطة التقاطع حيث تبدأ الخوارزمية "الأفضل" بالفوز قد لا تصل إلا عند، مثلاً، n = 10000. هذا بالضبط سبب تبديل بعض مكتبات الفرز الحقيقية بين خوارزميات حسب كمية البيانات التي تفرزها فعلياً، بدلاً من استخدام الأفضل نظرياً دائماً.

كيف تُستخدم O الكبيرة فعلياً يومياً من قِبل المبرمجين، لا في المقابلات فقط؟

إنها عملية فعلياً، لا تمريناً أكاديمياً فقط — إنها كيف يتنبأ المطور، قبل كتابة أو تشغيل أي كود، بما إذا كان نهج ما سيعمل بمجرد وصول بيانات حقيقية (أكبر بكثير)، بدلاً من اكتشاف ذلك بالطريقة الصعبة في الإنتاج. البحث في قائمة غير مُرتّبة O(n)؛ البحث الثنائي في قائمة مُرتّبة O(log n) — فرق غير مرئي بـ10 عناصر وهائل بـ10 ملايين، وهذا بالضبط نوع القرار الذي تتيح لك O الكبيرة اتخاذه مسبقاً.

تقييمات وآراء القراء

قيّم هذا المقال في عدة جوانب مختلفة — تقييمك يساعد القراء الآخرين، ويساعدنا على التحسّن.

المحتوى
الصور
العرض
وضوح اللغة
الفائدة

0/3000

هل كان هذا المقال مفيداً؟

أخبرنا برأيك — تصحيح، سؤال لم تتم الإجابة عنه، أو موضوع تودّ أن نغطيه لاحقاً.

تفضّل التحدث مباشرة؟ احجز مكالمة فيديو مجانية في الوقت الذي يناسبك: 15 دقيقة لسؤال سريع، و30 دقيقة لغير ذلك. تظهر المواعيد بتوقيتك المحلي.

Sudershan Soni

عن الكاتب

Sudershan Soni

المؤسس والمدرّس الرئيسي في موستاك — مدرّس رياضيات وعلوم وعلوم حاسوب و STEM حاصل على الماجستير بخبرة تتجاوز 20 عاماً، يدرّس الطلاب من اختبار +11 و GCSE حتى A-Level وما بعده، عبر الإنترنت حول العالم.

اقرأ الملف الكامل

هل تريد فهم الخوارزميات فعلياً، لا مجرد كتابة كود يعمل؟

الدروس الفردية تبني فهماً حقيقياً لعلوم الحاسوب، لا مجرد الصيغة النحوية. احجز جلسة مجانية وسنريك كيف.