/ / द्विआधारी खोज और प्रविष्टि सॉर्ट (पायथन) में एक ही परिणाम प्रदर्शित करने के लिए पुनरावर्तन का उपयोग करना - अजगर, पुनरावृत्ति, बाइनरी-खोज, सम्मिलन-प्रकार

बाइनरी सर्च एंड सम्मिलन सॉर्ट (पायथन) में एक ही परिणाम प्रदर्शित करने के लिए रिकर्सन का उपयोग करना - पायथन, रिकर्सन, बाइनरी-सर्च, सम्मिलन-प्रकार

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

बाइनरी खोज का उपयोग करके पुनरावृत्ति

def binarySearch(alist, item):
if len(alist) == 0:
return False
else:
midpoint = len(alist)//2
if alist[midpoint]==item:
return True
else if:
if item<alist[midpoint]:
return binarySearch(alist[:midpoint],item)
else:
return binarySearch(alist[midpoint+1:],item)

testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,]
print(binarySearch(testlist, 3))
print(binarySearch(testlist, 13))

प्रविष्टि सॉर्ट का उपयोग करके पुनरावृत्ति (एक सूची के साथ)

def insertionSort(list):

if i >= len(list):
return list
if list[i-1] > list[i]:
temp = list[i]
for a in range(0, i):
if temp < list[a]:
list.insert(a,temp)
del list[i+1]
break
return insertionSort(list, i+1)

while position > 0 and list[position - 1] > currentvalue:
list[position] = list[position - 1]
position = position - 1

list[position] = currentvalue

list = [0, 1, 2, 8, 13, 17, 19, 32, 42,]
insertionSort(list)
print(list)

उत्तर:

जवाब के लिए 3 № 1

कोड ब्लॉकों को उनके इंडेंटेशन द्वारा परिभाषित किया गया है। "कोड ब्लॉक" द्वारा, मेरा मतलब है कि फ़ंक्शन, यदि स्टेटमेंट्स, लूप के लिए, जबकि लूप्स, और इसके आगे। इंडेंटिंग एक ब्लॉक शुरू करता है और unindenting इसे समाप्त करता है। कोई स्पष्ट ब्रेसिज़, कोष्ठक या कीवर्ड नहीं हैं। इसका मतलब है कि व्हाट्सएप महत्वपूर्ण है, और लगातार होना चाहिए। इस उदाहरण में, फ़ंक्शन कोड (डॉक्टर स्ट्रिंग सहित) चार रिक्त स्थान का इंडेंट है। यह चार स्थानों पर होने की आवश्यकता नहीं है, इसे केवल सुसंगत बनाने की आवश्यकता है। पहली पंक्ति जो इंडेंट नहीं है वह फ़ंक्शन के बाहर है।

द्वारा अजगर में कूदो


जवाब के लिए 0 № 2

आपको पता है कि इंडेंटेशन का उपयोग कैसे करना है। आपके बाइनरी सर्च कोड में मल्टीपेंट इंडेंटेशन एरर हैं और यहाँ फिक्स हैं:

def binarySearch(alist, item):
if len(alist) == 0:
return False
else:
midpoint = len(alist)//2
if alist[midpoint]==item:
return True
else:
if item<alist[midpoint]:
return binarySearch(alist[:midpoint],item)
else:
return binarySearch(alist[midpoint+1:],item)

testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,]
print(binarySearch(testlist, 3))
print(binarySearch(testlist, 13))

लेकिन आपकी प्रविष्टि सॉर्ट एक और कहानी है। आपके पास अपरिभाषित चर और आदि यहाँ प्रविष्टि प्रकार का एक और कार्यान्वयन है:

def insertionSort(list,i):
if i<=1:
return
insertionSort(list, i - 1)
currentvalue = list[i - 1]
position = i - 2

while (position >= 0 and list[position] > currentvalue):
list[position + 1] = list[position]
position = position - 1
list[position + 1] = currentvalue


list = [0, 1, 2, 8, 13, 11, 19, 9, 42,]
insertionSort(list,len(list))
print(list)