मैं अपने एल्गोरिदम को अनुकूलित करने का एक तरीका ढूंढने की कोशिश कर रहा हूं जैसे कि चलने का समय ओ (एन²) (बिग ओ नोटेशन) है।एल्गोरिदम रनिंग टाइम ऑप्टिमाइज़ेशन
इनपुट केवल सकारात्मक और नकारात्मक पूर्णांक के एन तत्वों के साथ एक सरणी है। हम मान सकते हैं कि सरणी पहले से ही क्रमबद्ध है।
मुझे यह निर्धारित करना है: प्रत्येक आर (सरणी के तत्व) के लिए, चाहे आर = एस + टी, जहां एस और टी सरणी के तत्व भी हैं, और वही हो सकते हैं (एस == टी), या शून्य भी
मैंने जांच की है कि वर्तमान संख्या सकारात्मक या नकारात्मक है या नहीं, लेकिन चलने का समय अभी भी बहुत लंबा है या नहीं, मैंने जांच के लिए तत्वों की संख्या को कम करने की कोशिश की है। समस्या यह है कि मैं 3 का उपयोग कर रहा हूं जबकि लूप जो पहले से ही सबसे खराब मामले के लिए ओ (एन³) का चलने का मतलब है।
public static void Checker(int[] array) {
List<Integer> testlist = new ArrayList<Integer>();
int i = 0;
while (i < array.length) {
int current = array[i];
if (attached(current, array)) {
testlist.add(current);
}
i++;
}
}
public static boolean attached(int current, int[] array) {
boolean result = false;
int i = 0;
while (i < array.length && !result) {
int number1 = array[i];
int j = 0;
while (j < array.length && !result) {
int number2 = array[j];
if (number1 + number2 == current) {
result = true;
}
j++;
}
i++;
}
return result;
}
यह होमवर्क – Snelfie
है, सबसे पहले, सरणी से हैशसेट में सभी तत्व जोड़ें, फिर एस और टी पर फिर से चालू करें और जांचें कि आपके सेट में एस + टी प्रस्तुत किया गया है या नहीं। – x1Mike7x
कृपया हाइलाइटिंग के रूप में कोड स्वरूपण का उपयोग न करें, इससे चीजों को पढ़ने में बहुत मुश्किल होती है। –