समय की जटिलता

From Vigyanwiki
आमतौर पर एल्गोरिदम के विश्लेषण में उपयोग किए जाने वाले फ़ंक्शन के ग्राफ़, प्रत्येक फ़ंक्शन के लिए इनपुट आकार n के परिणाम के रूप में ऑपरेशन N की संख्या दिखाते हैं

कंप्यूटर विज्ञान में, समय जटिलता कम्प्यूटेशनल जटिलता है जो कलन विधि को चलाने में लगने वाले कंप्यूटर समय की मात्रा का वर्णन करती है। समय की जटिलता का अनुमान आमतौर पर एल्गोरिदम द्वारा किए गए प्राथमिक संचालन की संख्या की गणना करके लगाया जाता है, यह मानते हुए कि प्रत्येक प्रारंभिक ऑपरेशन को निष्पादित करने में निश्चित समय लगता है। इस प्रकार, एल्गोरिदम द्वारा किए गए समय की मात्रा और किए गए प्राथमिक संचालन की संख्या को स्थिर कारक से संबंधित माना जाता है।

चूंकि एल्गोरिदम का चलने का समय ही आकार के विभिन्न इनपुट के बीच भिन्न हो सकता है, इसलिए आमतौर पर सबसे खराब स्थिति जटिलता | सबसे खराब स्थिति समय जटिलता पर विचार किया जाता है, जो किसी दिए गए आकार के इनपुट के लिए आवश्यक अधिकतम समय है। कम सामान्य, और आमतौर पर स्पष्ट रूप से निर्दिष्ट, औसत-केस जटिलता है, जो किसी दिए गए आकार के इनपुट पर लिए गए समय का औसत है (यह समझ में आता है क्योंकि किसी दिए गए आकार के संभावित इनपुट की केवल सीमित संख्या होती है)। दोनों ही मामलों में, समय जटिलता आम तौर पर इनपुट के आकार के फ़ंक्शन (गणित) के रूप में व्यक्त की जाती है।[1]: 226  चूंकि इस फ़ंक्शन की सटीक गणना करना आमतौर पर मुश्किल होता है, और छोटे इनपुट के लिए चलने का समय आमतौर पर परिणामी नहीं होता है, आमतौर पर इनपुट आकार बढ़ने पर जटिलता के व्यवहार पर ध्यान केंद्रित किया जाता है - यानी, जटिलता का स्पर्शोन्मुख विश्लेषण। इसलिए, समय जटिलता आमतौर पर बड़ा ओ अंकन का उपयोग करके व्यक्त की जाती है , , , , आदि, कहाँ n इनपुट का प्रतिनिधित्व करने के लिए आवश्यक अंश ्स की इकाइयों में आकार है।

एल्गोरिथम जटिलताओं को बड़े ओ नोटेशन में दिखाई देने वाले फ़ंक्शन के प्रकार के अनुसार वर्गीकृत किया गया है। उदाहरण के लिए, समय जटिलता वाला एल्गोरिदम रैखिक समय एल्गोरिथ्म और समय जटिलता वाला एल्गोरिदम है कुछ स्थिरांक के लिए बहुपद समय एल्गोरिथ्म है।

सामान्य समय जटिलताओं की तालिका

निम्नलिखित तालिका आम तौर पर सामना की जाने वाली समय जटिलताओं के कुछ वर्गों का सारांश प्रस्तुत करती है। मेज पर, poly(x) = xO(1), यानी, x में बहुपद।

Name Complexity class Running time (T(n)) Examples of running times Example algorithms
constant time 10 Finding the median value in a sorted array of numbers.

Calculating (−1)n

inverse Ackermann time Amortized time per operation using a disjoint set
iterated logarithmic time Distributed coloring of cycles
log-logarithmic Amortized time per operation using a bounded priority queue[2]
logarithmic time DLOGTIME , Binary search
polylogarithmic time
fractional power where , Searching in a kd-tree
linear time n, Finding the smallest or largest item in an unsorted array.

Kadane's algorithm. Linear search

"n log-star n" time Seidel's polygon triangulation algorithm.
linearithmic time , Fastest possible comparison sort

Fast Fourier transform.

quasilinear time Multipoint polynomial evaluation
quadratic time Bubble sort, Insertion sort, Direct convolution
cubic time Naive multiplication of two matrices

Calculating partial correlation.

polynomial time P