جدول المحتويات:
تعريف - ماذا يعني تعقيد الوقت؟
التعقيد الزمني هو مفهوم في علوم الكمبيوتر يتعامل مع القياس الكمي لمقدار الوقت الذي تستغرقه مجموعة من التعليمات البرمجية أو الخوارزمية للمعالجة أو التشغيل كدالة لمقدار المدخلات.
بمعنى آخر ، يكون التعقيد الزمني أساسًا هو الكفاءة ، أو المدة التي تستغرقها وظيفة البرنامج لمعالجة إدخال معين.
تيكوبيديا يوضح تعقيد الوقت
تعقيد الوقت هو ببساطة مقياس للوقت الذي تستغرقه دالة أو تعبير لإكمال مهمتها ، وكذلك اسم العملية لقياس ذلك الوقت. يمكن تطبيقه على أي خوارزمية أو وظيفة تقريبًا ، لكنه مفيد أكثر للوظائف العودية. لا توجد فائدة تذكر في قياس التعقيد الزمني للتطبيقات مثل جلب اسم المستخدم وكلمة المرور من قاعدة بيانات للمقارنة أو ببساطة حفظ البيانات سواء كانت 20 مللي ثانية أو 5 مللي ثانية ؛ من شأنه أن يكون أكثر في خط وقت الوصول. لا علاقة له بالاهتمام بوقت التنفيذ ، ولكن الفرق لا يكاد يذكر. ومع ذلك ، إذا كانت هناك وظيفة متكررة يمكن أن يطلق عليها عدة مرات ، فإن تحديد وفهم مصدر تعقيدها الزمني قد يساعد في تقصير وقت المعالجة الكلي من ، على سبيل المثال ، من 600 مللي إلى 100 مللي ثانية.
يتم التعبير عن تعقيد الوقت عادةً في "تدوين كبير O" ، ولكن هناك رموز أخرى. هذا هو تمثيل رياضي للحد الأعلى لعامل التحجيم لخوارزمية ويتم كتابته كـ O (Nn) ، مع "N" كونه عدد المدخلات و "n" هو عدد تعبيرات looping. على سبيل المثال ، لدينا الخوارزمية:
numbers = {5, 6, 10, 11, 2}; foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2) {
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
هناك خمسة مدخلات في مجموعة "الأرقام" ، ويتم تكرار حلقة "foreach" مرتين. لذلك ، يحدث نمو هائل في وقت المعالجة مع زيادة عدد المدخلات وعدد الحلقات.
