अधिकतम सभी में नहीं
यदि हमें दर्ज की गई सभी संख्याओं के बीच अधिकतम (न्यूनतम) खोजने की आवश्यकता है, लेकिन केवल उन संख्याओं के बीच जो एक निश्चित स्थिति को पूरा करती हैं, तो हमें इस तथ्य को ध्यान में रखना चाहिए कि पहली संख्या जिसे हम अधिकतम के प्रारंभिक मान के रूप में लेते हैं (न्यूनतम) हमेशा हमारी आवश्यकताओं को पूरा नहीं करेगा।
उदाहरण के लिए, यदि हम अधिकतम नकारात्मक संख्या की तलाश कर रहे हैं, तो डेटा सेट होना:
\(\{5, -2, 4, 2, -1, -3\}\ ) हमें अधिकतम के प्रारंभिक मान में संख्या 5 मिलेगी, और यह धनात्मक है और किसी भी ऋणात्मक से अधिक है। और इसलिए हालत
X > M
हमेशा असत्य होगा।
इसलिए, पिछली समस्या से एल्गोरिदम में ऋणात्मक संख्या के लिए केवल एक चेक जोड़ना पर्याप्त नहीं है, इस तथ्य को भी ध्यान में रखना आवश्यक है कि पहली संख्या आवश्यक शर्त को पूरा नहीं कर सकती है (इस मामले में, नकारात्मक हो ).
आप लूप के अंदर निम्न शर्त जोड़कर इसे ठीक कर सकते हैं:
स्यूडोकोड
<पूर्व>
यदि एक्स नकारात्मक है, तो
यदि M >= 0 या M < एक्स, फिर
एम = एक्स
पूर्व>
निर्दिष्ट कोड में,
M >= 0
स्थिति आपको
M = X
क्रिया करने की अनुमति देती है, भले ही
M
चर में शुरू में एक मान होता है जो स्पष्ट रूप से बाकी की तुलना में अधिक होता है (हमारे उदाहरण में, मान 5 के बराबर है)।
हम यह भी ध्यान देते हैं कि यदि संख्याओं की श्रेणी ज्ञात है, तो निर्दिष्ट सीमा से न्यूनतम (अधिकतम) संख्या को अधिकतम (न्यूनतम) के प्रारंभिक मान के रूप में लिया जा सकता है।