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

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


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

उदाहरण

def select_smallest(my_list, beg, end, i):
    if end - beg <= 1:
        return my_list[beg]
    pivot_val = start_partition(my_list, beg, end)
    k = pivot_val - beg + 1
    if i < k:
        return select_smallest(my_list, beg, pivot_val, i)
    elif i > k:
        return select_smallest(my_list, pivot_val + 1, end, 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_smallest = select_smallest(my_list, 0, len(my_list), i)
print('परिणाम {} है।'.format(ith_smallest))

आउटपुट

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

व्याख्या

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

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

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

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

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

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

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

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

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

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

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


  1. Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है। यहां हम या तो सूची को क्रमबद्ध करके सबसे छोटा तत्व प्राप्त कर सकते हैं या बिल्ट-इन min() फ़ंक्शन का उपयोग करके सबसे छोटा तत्

  1. - Python प्रोग्राम से सूची में दूसरी सबसे बड़ी संख्या खोजना

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

  1. पायथन प्रोग्राम में लीनियर सर्च पायथन प्रोग्राम में लीनियर सर्च

    इस लेख में, हम पायथन 3.x में लीनियर सर्च और इसके कार्यान्वयन के बारे में सीखेंगे। या इससे पहले। एल्गोरिदम दिए गए arr[] के बाएंmost एलिमेंट से शुरू करें और एक-एक करके एलिमेंट x की तुलना arr[] के प्रत्येक एलिमेंट से करें। यदि x किसी एलिमेंट से मेल खाता है, तो इंडेक्स वैल्यू वापस करें। यदि x, arr[]