تعقيد الزمن
في علم الحاسوب، فإن تعقيد زمان خوارزمية هو تحديد الزمن الذي تستغرقه تلك الخوارزمية لتعمل كتابع لحجم مدخلات المسألة. غالباً ما يعبر عن تعقيد زمن خوارزمية بإستخدام تدوين أوه الكبيرة، الذي يستبعد الثوابت المضروبة والحدود الأقل رتبة. وعندمايستخدم التدوين السابق لوصف تعقيد زمن خوارزمية ما فإن ذلك الوصف يكون بشكل مقارب asymptotically، أي عندما يسعى حجم المدخلات إلى اللانهاية. على سبيل المثال ، إذا كان أقصى زمن تستغرقه خوارزمية من أجل جميع المدخلات من حجم n هو ،فإن تعقيد الزمن المقارب هو .
ويقدر عادة تعقيد وقت خوارزمية من خلال إحصاء عدد العمليات الأولية التي تؤديها الخوارزمية، باعتبار أن تنفيذ كل عملية ابتدائية يأخذ مقداراً محدداً من الزمن. لذلك فإن الوقت الذي تستغرقه الخوارزمية وعدد العمليات الأولية المنفذة فيها يختلف بمقدار معامل ثابت على الأكثر.
وبما أنه يمكن للخوارزمية أن تستغرق مقداراً مختلفاً من الوقت بالنسبة لمدخلات من الحجم نفسه، فإن المقياس الأكثر استخداما في تعقيد الزمن، هو تعقيد زمن أسوأ الحالات للخوارزمية، والذي يعبر عنه باستخدام ، وهو الحد الأعظمي من الوقت الذي يمكن أن يستهلكه أي دخل من الحجم n. تصنف تعقيدات زمن الخوارزميات وفقاً لطبيعة التابع . فعلى سبيل المثال، تسمى خوارزمية بتابع خوارزمية زمن خطي ، وخوارزمية بتابعو خوارزمية زمن أسي.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
جدول بأشهر تعقيدات الزمن
يلخص الجدول التالي أهم أصناف تعقيدات الزمن The following table summarises some classes of commonly encountered time complexities. In the table, poly(x) = xO(1), i.e., polynomial in x.
quasi-polynomial time || QP || 2poly(log n) || nlog log n, nlog n || Best-known O(log2n)-approximation algorithm for the directed Steiner tree problem.الاسم | صنف التعقيد | وقت التشغيل | أمثلة على أوقات التشغيل | أمثلة على الخوارزميات |
---|---|---|---|---|
وقت ثابت | 10 | تحديد ما إذا كان عدد ما زوجياً أو فردياً | ||
آكيرمان العكسي | Amortized time per operation using a disjoint set | |||
لوغاريتمي تكراري | Distributed coloring of cycles | |||
لوغاريتمي لوغاريتمي | Amortized time per operation using a bounded priority queue[1] | |||
زمن لوغاريتمي | DLOGTIME | , | Binary search | |
زمن كثير-لوغاريتمي | poly(log (n)) | > | ||
قوة كسرية | , | , | Searching in a kd-tree | |
زمن خطي | O(n) | n | Finding the smallest item in an unsorted array | |
"n لوغاريتم نجمة n" | O(n قالب:Log-star n) | Seidel's polygon triangulation algorithm. | ||
زمن خطي-حسابي | O(n log n) | n log n, log n! | Fastest possible comparison sort | |
quadratic time | O(n2) | n2 | Bubble sort; Insertion sort | |
زمن تكعيبي | O(n3) | n3 | Naive multiplication of two n×n matrices. Calculating partial correlation. | |
زمن كثير حدودي | P | 2O(log n) = poly(n) | n, n log n, n10 | Karmarkar's algorithm for linear programming; AKS primality test |
sub-exponential time (first definition) |
SUBEXP | O(2nε) for all ε > 0 | O(2log nlog log n) | Assuming complexity theoretic conjectures, BPP is contained in SUBEXP. |
sub-exponential time (second definition) |
2o(n) | 2n1/3 | Best-known algorithm for integer factorization and graph isomorphism | |
زمن أسي | E | 2O(n) | 1.1n, 10n | Solving the traveling salesman problem using dynamic programming |
زمن أسي | EXPTIME | 2poly(n) | n!, nn, 2n2 | |
زمن عاملي | O(n!) | n! | Solving the traveling salesman problem via brute-force search | |
زمن أسي مزدوج | 2-EXPTIME | 22poly(n) | 23n | Deciding the truth of a given statement in Presburger arithmetic |
مراجع
- ^ Mehlhorn, Kurt; Naher, Stefan (1990). "Bounded ordered dictionaries in O(log log N) time and O(n) space". Information Processing Letters.