Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแบ่งอาร์เรย์สามทางรอบช่วงที่กำหนดโดยใช้Python


กำหนดอาร์เรย์และช่วงของอาร์เรย์ [startval, endval] อาร์เรย์ถูกหารด้วยสามส่วน

  • องค์ประกอบทั้งหมดที่เล็กกว่า startval มาก่อน
  • องค์ประกอบทั้งหมดในช่วง startval ถึง 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]

อัลกอริทึม

Step1: First the list is divided into three parts, first part will contain elements less than startval, second part will contain elements between startval and endval and third part will contain elements greater than endval.
Step2: Concatenate all three parts together.

โค้ดตัวอย่าง

def partition_array(input, lowVal, highVal):
   # Separate input list in three parts
   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 ]
# concatenate all three parts
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]