समय की जटिलता किसी भी एल्गोरिथम को पूरा करने के लिए एल्गोरिथम द्वारा लिया गया समय है। एल्गोरिदम की दक्षता दिखाने और तुलनात्मक विश्लेषण के लिए यह एक महत्वपूर्ण मीट्रिक है। हम एल्गोरिदम की समय जटिलता को कम करते हैं जो इसे और अधिक प्रभावी बनाता है।
उदाहरण 1
निम्नलिखित कोड स्निपेट की समय जटिलता का पता लगाएं
for(i= 0 ; i < n; i++){ cout<< i << " " ; i++; }
लूप का अधिकतम मान n है लेकिन i लूप के लिए दो बार बढ़ा दिया जाएगा जिससे समय आधा हो जाएगा। तो समय जटिलता O(n/2) है जो O(n) के बराबर है।
उदाहरण 2
निम्नलिखित कोड स्निपेट की समय जटिलता का पता लगाएं
for(i= 0 ; i < n; i++){ for(j = 0; j<n ;j++){ cout<< i << " "; } }
आंतरिक लूप और बाहरी लूप दोनों n बार निष्पादित कर रहे हैं। तो i के एकल मान के लिए, j n बार लूप कर रहा है, i के n मानों के लिए, j कुल n*n =n 2 बार लूप करेगा। तो समय जटिलता O(n 2 ) है।
उदाहरण 3
निम्नलिखित कोड स्निपेट की समय जटिलता का पता लगाएं
int i = n; while(i){ cout << i << " "; i = i/2; }
इस स्थिति में, प्रत्येक पुनरावृत्ति के बाद i का मान उसके पिछले मान के आधे में बदल जाता है। तो श्रंखला इस प्रकार होगी:. तो समय जटिलता ओ (लॉग एन) है।
उदाहरण 4
निम्नलिखित कोड स्निपेट की समय जटिलता का पता लगाएं
if(i > j ){ j>23 ? cout<<j : cout<<i; }
कोड में दो सशर्त बयान हैं। प्रत्येक सशर्त कथन में समय जटिलता =O(1) है, उनमें से दो के लिए यह O(2) है जो O(1) के बराबर है जो स्थिर है ।
उदाहरण 5
निम्नलिखित कोड स्निपेट की समय जटिलता का पता लगाएं
for(i= 0; i < n; i++){ for(j = 1; j < n; j = j*2){ cout << i << " "; } }
आंतरिक लूप निष्पादित कर रहा है (लॉग एन) बार जहां बाहरी एन बार निष्पादित हो रहा है। तो i के एकल मान के लिए, j (लॉग n) बार निष्पादित कर रहा है, i के n मानों के लिए, j कुल n*(log n) =(n log n) बार लूप करेगा। तो समय जटिलता ओ (एन लॉग एन) है।