सबसे औपचारिक अर्थों में, एल्गोरिथ्म के ट्यूरिंग मशीन कार्यान्वयन के संदर्भ में इनपुट का आकार मापा जाता है, और यह इनपुट को एन्कोड करने के लिए आवश्यक वर्णमाला प्रतीकों की संख्या है।
यह निश्चित रूप से अमूर्त है, और अभ्यास के साथ काम करना बहुत मुश्किल है, या कम से कम बहुत कष्टप्रद है - हमें यह विचार करने की आवश्यकता होगी कि हम कैसे डेलिमिटर्स आदि निर्दिष्ट कर रहे हैं आदि। व्यवहार में सामान्य रूप से क्या होता है, तो क्या हम खोजते हैं इनपुट के आकार का एक प्रॉक्सी माप - कुछ अधिक सुविधाजनक और सुलभ, लेकिन इससे हमारे विश्लेषण में कोई गणितीय समस्या पैदा नहीं होती है।
आपके "एबीसीड" उदाहरण का उपयोग करते हुए, यह सामान्य रूप से ऐसा होगा कि इनपुट के लिए हम जिस वर्णमाला का उपयोग करते हैं वह छोटा है, इसलिए वर्णों के प्रॉक्सी माप का उपयोग करते हुए भी , हम जानते थे कि ट्यूरिंग मशीन पर भी, हम परेशान कर सकते हैं, एक इनपुट एन्कोडिंग निर्दिष्ट करें जो कुछ एबोडेड फॉर्म में "एबीसीड" को परिवर्तित करेगा जिसकी लंबाई कुछ स्थिर लिए अधिकतम । एक स्थिर द्वारा यह विस्तार आमतौर पर हमारे स्पर्शोन्मुख विश्लेषण में कोई अंतर नहीं करेगा, क्योंकि हम नियमित रूप से निरंतर कारकों को छोड़ देते हैं।55×c c
एक अलग मामले में, हम अक्सर इनपुट ग्राफ के आकार को नापते हैं की संख्या से । स्पष्ट रूप से अगर हम मनमाने ढंग से बड़े रेखांकन निर्दिष्ट करना चाहते हैं, तो एन्कोडेड इनपुट का आकार केवल नहीं है - उदाहरण के लिए किनारों का क्या हुआ? हम क्या जानते हैं कि हम एक उचित एन्कोडिंग योजना का उपयोग कर सकते हैं जो बिट्स में ग्राफ का प्रतिनिधित्व करता है । यह निरंतर की तुलना में थोड़ा अधिक विस्तार है, लेकिन बहुत सारे दिलचस्प मामलों में, हम केवल बहुरूपताओं की एक विशिष्टता पर काम कर रहे हैं, और बहुपद कई तरीकों से अच्छी तरह से रचना करते हैं - विशेष रूप से, उदाहरण के लिए, यदि हम निर्धारित करते हैं कि हमारा चलने का समय जहाँ एक बहुपद है, तो हम जानते हैं कि कुछ बहुपद हैnnN=c⋅n2lognO(p(n))pp′ such that O(p(n))=O(p′(N)), so when we move back to the formal measure of the input, we're still in polynomial time.
A place where this might fall down is when you are working with numbers. As a number with magnitude m can be encoded in n=O(logm) bits, if our running time were O(m), this would be O(2n) - exponential in the actual input size - which would make the magnitude m a bad choice for a proxy for the input size if we wanted to talk about membership in P for example (when you come to Strongly-NP-complete and Weakly-NP-complete, remember this). On the other hand, if all we were interested in was decidability, then it would be a good enough proxy measure.
So while there's no stated rule for picking a proxy measure for the input size, the requirement is that the expansion or contraction of the proxy size compared to the input size should be compatible with what you're trying to prove. As a rule of thumb, constant factor changes almost never matter, small polynomial factors are normally fine and work for most of the basic theory that you see, large polynomial factors might still work in for theory, but can be a nasty surprise in practice, and exponential amounts of change are normally way too extreme.