Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन प्रोग्राम: अपेक्षित रैखिक समय में सूची से nवां सबसे बड़ा तत्व चुनना


जब रैखिक समय जटिलता में सूची से nवां सबसे बड़ा तत्व चुनने की आवश्यकता होती है, तो दो विधियों की आवश्यकता होती है। एक विधि सबसे बड़ा तत्व खोजने के लिए, और दूसरी विधि जो सूची को दो भागों में विभाजित करती है। यह विभाजन उपयोगकर्ता द्वारा दिए गए 'i' मान पर निर्भर करता है। इस मान के आधार पर, सूची विभाजित होती है, और सबसे बड़ा तत्व निर्धारित किया जाता है।

उदाहरण

def select_largest(my_list, beg, end, i):
    if end - beg <= 1:
        return my_list[beg]
    pivot_val = start_partition(my_list, beg, end)
    k = end - pivot_val
    if i < k:
        return select_largest(my_list, pivot_val + 1, end, i)
    elif i > k:
        return select_largest(my_list, beg, pivot_val, i - k)
    return my_list[pivot_val]

def start_partition(my_list, beg, end):
    pivot_val = my_list[beg]
    i = beg + 1
    j = end - 1
    while True:
        while (i <= j and my_list[i] <= pivot_val):
            i = i + 1
        while (i <= j and my_list[j] >= pivot_val):
            j = j - 1
        if i <= j:
            my_list[i], my_list[j] = my_list[j], my_list[i]
        else:
            my_list[beg], my_list[j] = my_list[j], my_list[beg]
            return j

my_list = input('संख्याओं की सूची दर्ज करें.. ')
my_list = my_list.split()
my_list = [int(x) for x in my_list]
i = int(input('i के लिए मान दर्ज करें.. '))
ith_largest = select_largest(my_list, 0, len(my_list), i)
print('परिणाम {} है।'.format(ith_largest))

आउटपुट

संख्याओं की सूची दर्ज करें.. 34 67 12 0 999
i के लिए मान दर्ज करें.. 1
परिणाम 999 है।

व्याख्या

  • 'select_largest' नामक एक विधि परिभाषित की गई है, जो सूची, शुरुआत, अंत और एक 'i' मान को पैरामीटर के रूप में लेती है।

  • 'start_partition' नामक एक अन्य विधि परिभाषित की गई है जो 'i' के मान के आधार पर सूची को दो भागों में विभाजित करती है।

  • यह विधि 'select_largest' विधि में कॉल की जाती है।

  • 'select_largest' को उसी फ़ंक्शन के अंदर फिर से कॉल किया जाता है - इस तरह पुनरावृत्ति काम करती है।

  • संख्याओं को उपयोगकर्ता से इनपुट के रूप में लिया जाता है।

  • इसे डिफ़ॉल्ट मान के आधार पर विभाजित किया जाता है।

  • इस पर पुनरावृत्ति की जाती है।

  • 'i' के लिए एक मान उपयोगकर्ता से लिया जाता है।

  • इस 'i' मान के आधार पर, सूची दो भागों में विभाजित होती है।

  • सूची में से एक पर 'select_largest' विधि कॉल की जाती है।

  • आउटपुट कंसोल पर प्रदर्शित किया जाता है।


  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का उपयोग करते हैं जिसमें हम पूरे लूप को पार करके और तत्व प्राप्त करके सबसे बड़ा तत्व निकालते हैं। हम नीच

  1. - पायथन सूची से न्यूनतम मान वाले तत्व को कैसे खोजें?

    पायथन सूची में न्यूनतम मान वाले तत्व को खोजने के लिए, आप min() फ़ंक्शन का उपयोग कर सकते हैं जिसमें सूची को आर्गुमेंट के रूप में पास किया जाता है। min फ़ंक्शन सूची पर पुनरावृत्ति करता है और अब तक मिले न्यूनतम मान को ट्रैक करता रहता है जब तक कि यह अंत तक नहीं पहुंच जाता। फिर यह वह मान वापस करता है। उ

  1. - पायथन सूची से अधिकतम मान वाले तत्व को कैसे खोजें?

    पायथन सूची में अधिकतम मान वाले तत्व को खोजने के लिए, आप max() फ़ंक्शन का उपयोग कर सकते हैं जिसमें सूची को आर्गुमेंट के रूप में पास किया जाता है। max फ़ंक्शन सूची पर पुनरावृत्ति करता है और अब तक मिले अधिकतम मान को ट्रैक करता रहता है जब तक कि यह अंत तक नहीं पहुंच जाता। फिर यह वह मान वापस करता है। उदा