हमें पूर्णांकों की एक सरणी दी गई है। कार्य है सरणी के न्यूनतम और अधिकतम तत्व को न्यूनतम संभव तुलनाओं में ढूंढना।
इनपुट
Arr[] = { 1, 2, 4, 5, -3, 91 } आउटपुट
अधिकतम तत्व: 91 न्यूनतम तत्व: -3
व्याख्या
तुलनाओं को कम करने के लिए, हम अधिकतम और न्यूनतम दोनों को Arr[0] से प्रारंभ करते हैं। फिर दूसरे तत्व से शुरू करके प्रत्येक मान की तुलना min और max से करते हैं और तदनुसार अद्यतन करते हैं।
इनपुट
Arr[] = { 10, 20, 21, 31, 18, 11 } आउटपुट
अधिकतम तत्व: 31 न्यूनतम तत्व: 10
व्याख्या
यहां भी, तुलनाओं को कम करने के लिए, हम अधिकतम और न्यूनतम दोनों को Arr[0] से प्रारंभ करते हैं। फिर दूसरे तत्व से शुरू करके प्रत्येक मान की तुलना min और max से करते हैं और तदनुसार अद्यतन करते हैं।
उपयोग किया गया दृष्टिकोण
हम संख्याओं वाली एक पूर्णांक सरणी Arr[] लेते हैं।
फ़ंक्शन getresult(int arr[], int n) सरणी में न्यूनतम तुलनाओं में अधिकतम और न्यूनतम तत्व ढूंढता है।
यदि केवल एक तत्व है, तो हम max और min दोनों को arr[0] से प्रारंभ करते हैं।
एक से अधिक तत्वों के लिए, हम max को arr[1] और min को arr[0] से प्रारंभ करते हैं (उनकी तुलना करके)।
फॉर लूप के अंदर तीसरे तत्व (i=2) से अंतिम तक पार करते हैं।
प्रत्येक मान (arr[i]) की तुलना min और max से करते हैं। यदि यह min से कम है, तो min को arr[i] से अद्यतन करें। यदि यह max से अधिक है, तो max को arr[i] से अद्यतन करें।
अंत में max और min चरों में संग्रहीत परिणाम प्रिंट करते हैं।
उदाहरण
#include <stdio.h> #include <math.h> int getresult(int arr[], int n){ int min=0, max=0; /*यदि केवल एक तत्व है तो उसे min और max दोनों के रूप में लौटाएं*/ if (n == 1) { min = max = arr[0]; } /*यदि एक से अधिक तत्व हैं, तो min और max प्रारंभ करें*/ if (arr[0] > arr[1]){ max = arr[0]; min = arr[1]; } else{ max = arr[1]; min = arr[0]; } for (int i = 2; i < n; i++){ if (arr[i] > max) max = arr[i]; else if (arr[i] < min) min = arr[i]; } printf(" न्यूनतम तत्व: %d", min); printf(" अधिकतम तत्व: %d", max); } /* ड्राइवर प्रोग्राम */ int main(){ int arr[] = {200, 191, 112, -11, 330, 60}; int n = 6; getresult(arr, n); return 0; } आउटपुट
उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:
न्यूनतम तत्व: -11 अधिकतम तत्व: 330