एक ऐरे और ऐरे की रेंज [startval, endval] दी गई है। ऐरे को तीन भागों में विभाजित किया जाता है।
- startval से छोटे सभी एलिमेंट्स पहले आते हैं।
- startval से endval की रेंज में सभी एलिमेंट्स आगे आते हैं।
- endval से बड़े सभी एलिमेंट्स अंत में आते हैं।
उदाहरण
Input: A = [1, 14, 51, 12, 4, 2, 54, 20, 87, 98, 3, 1, 32]
startval = 14, endval = 54
Output: A = [1, 12, 4, 2, 3, 1, 14, 51, 20, 32, 54, 87, 98]
एल्गोरिदम
चरण 1: पहले लिस्ट को तीन भागों में विभाजित करें, पहला भाग startval से कम एलिमेंट्स रखेगा, दूसरा भाग startval और endval के बीच के एलिमेंट्स रखेगा और तीसरा भाग endval से बड़े एलिमेंट्स रखेगा।
चरण 2: सभी तीन भागों को एक साथ कन्कैटनेट करें।
उदाहरण कोड
def partition_array(input, lowVal, highVal):
# इनपुट लिस्ट को तीन भागों में अलग करें
my_first = [num for num in input if num < lowVal]
my_second = [num for num in input if (num >= lowVal and num <= highVal)]
my_third = [num for num in input if num > highVal]
# सभी तीन भागों को कन्कैटनेट करें
print(my_first + my_second + my_third)
# ड्राइवर प्रोग्राम
if __name__ == "__main__":
my_input = [10, 140, 50, 200, 40, 20, 540, 200, 870, 980, 30, 10, 320]
my_lowVal = 140
my_highVal = 200
partition_array(my_input, my_lowVal, my_highVal)
आउटपुट
[10, 50, 40, 20, 30, 10, 140, 200, 200, 540, 870, 980, 320]