मुझे यह समझने में मदद की ज़रूरत है कि लेखक को बिग ओ अध्याय में समस्या 11 का जवाब कैसे मिला।बिग ओ नोटेशन को समझना - कोडिंग साक्षात्कार को क्रैक करना
समस्या इस प्रकार है:
निम्नलिखित कोड प्रिंट लंबाई कश्मीर के सभी तार जहां क्रमबद्ध क्रम में वर्ण हैं। यह लंबाई के सभी तारों को उत्पन्न करके और फिर प्रत्येक को क्रमबद्ध करने की जांच करके ऐसा करता है। इसका रनटाइम क्या है?
public static int numChars = 26;
public static void printSortedStrings(int remaining) {
printSortedStrings(remaining, "");
}
public static void printSortedStrings(int remaining, String prefix) {
if (remaining == 0) {
if (isInOrder(prefix)) {
System.out.println(prefix); // Printing the string
}
} else {
for (int i = 0; i < numChars; i++) {
char c = ithLetter(i);
printSortedStrings(remaining - 1, prefix + c);
}
}
}
public static boolean isInOrder(String s) {
for (int i = 1; i < s.length(); i++) {
int prev = ithLetter(s.charAt(i - 1));
int curr = ithLetter(s.charAt(i));
if (prev > curr) {
return false;
}
}
return true;
}
public static char ithLetter(int i) {
return (char) (((int) 'a') + i);
}
public static void main(String[] args) {
printSortedStrings(2);
}
बुक जवाब:
हे (केसी कश्मीर), जहां कश्मीर स्ट्रिंग और ग की लंबाई है वर्णमाला में वर्णों की संख्या है। यह प्रत्येक स्ट्रिंग उत्पन्न करने के लिए ओ (सी के) लेता है। फिर, हमें यह जांचना होगा कि इनमें से प्रत्येक को क्रमबद्ध किया गया है, जो ओ (के) समय लेता है।
ध्यान दें कि स्ट्रिंग को प्रिंट करना ऊपर दिए गए उत्तर में ध्यान में नहीं रखा गया है, लेकिन मैंने अन्य समस्याओं में विपरीत देखा है।
आप रनटाइम में स्ट्रिंग को मुद्रित करते समय खाते में कब लेते हैं?
इस सही जवाब हे (कश्मीर ग कश्मीर) होगा?
इसके अलावा, यह भी सलाह देने में सक्षम होने पर कोई सलाह है कि इस कोड के रनटाइम में एक घातीय भाग बहुत सराहना की जाएगी। :)
आप ओ (के सी के) पर कैसे पहुंचते हैं? "2" कहां से आ रहा है (पाठ्यपुस्तक में सिर्फ ओ (के सी के) है। – Thilo
यदि आप स्ट्रिंग को खाते में प्रिंट करना चाहते हैं, तो यह प्रत्येक उत्तर के लिए ओ (के) है। तो आप इसे "चेकिंग" के हिस्से के रूप में गिन सकते हैं (जो प्रत्येक उम्मीदवार के लिए पहले से ही ओ (के) है) और इसमें जटिलता नहीं है। – Thilo
क्यों स्ट्रिंग कॉन्सटेनेशन 'उपसर्ग + सी' जटिलता को प्रभावित नहीं करता है? मेरी समझ यह है कि इसमें 'ओ (एन)' है। मैं क्या खो रहा हूँ? – chalimartines