একটি অ্যারে এবং এর রেঞ্জ [startval, endval] দেওয়া থাকলে। অ্যারেটি তিন bagianে ভাগ করা হয়।
- 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]
অ্যালগরিদম
Step 1: প্রথমে লিস্টটি তিন অংশে ভাগ করা হবে। প্রথম অংশে startval-এর চেয়ে ছোট এলিমেন্ট, দ্বিতীয় অংশে startval এবং endval-এর মাঝপথের এলিমেন্ট, এবং তৃতীয় অংশে endval-এর চেয়ে বড় এলিমেন্ট থাকবে। Step 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)
# Driver program
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]