में क्रमबद्ध मैट्रिक्स (पंक्तियां एन कॉलम) में संख्या खोजें कहें कि मेरे पास एक मैट्रिक्स (MxN
) है जिसमें इसकी पंक्तियां और कॉलम क्रमबद्ध हैं।ओ (लॉग एन)
- सभी प्रत्येक पंक्ति में तत्वों बढ़ते क्रम में व्यवस्थित कर रहे हैं बढते क्रम
- में प्रत्येक स्तंभ में
- सभी तत्वों को व्यवस्थित कर रहे हैं सभी तत्वों पूर्णांकों
कोई अन्य मान्यताओं
की जा सकती हैंउदाहरण:
[1 5 से 8 20]
[2 9 19 21]
[12 15 25 30]
मैं अगर दी गई संख्या या मैट्रिक्स में मौजूद (बेसिक खोज) नहीं है खोजने के लिए। मैं एक एल्गोरिथ्म जो O(n)
int row = 0;
int col = N-1;
while (row < M && col >= 0) {
if (mat[row][col] == elem) {
return true;
} else if (mat[row][col] > elem) {
col--;
} else {
row++;
}
}
चलाता है लेकिन मैं एक O(log (MxN)) == O(Log(n))
समाधान कहा गया। कोई विचार??
क्या आप की तुलना में यह हल कर किया जा रहा है (इसकी पंक्तियां/स्तंभ आकार की तरह, perhpas अन्य मैट्रिक्स में जाने के बारे में पता है?) – Jordan
@Yoel: ठीक है, यह विशाल हो सकता है, केवल पूर्णांक, नकारात्मक संख्या हो सकती है। आप जो भी विशिष्ट खोज रहे हैं? – noMAD
आपका मतलब है 'ओ (लॉग एमएक्सएन) '? – BrokenGlass