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

จัดเรียงสีใน Python


สมมติว่าเรามีอาร์เรย์ที่มีวัตถุ n รายการ สิ่งเหล่านี้เป็นสีแดง สีขาว หรือสีน้ำเงิน จัดเรียงให้เข้าที่เพื่อให้วัตถุที่มีสีเดียวกันอยู่ติดกัน โดยเรียงตามลำดับสี แดง ขาว และน้ำเงิน ในที่นี้ เราจะใช้ตัวเลขเช่น 0, 1 และ 2 เพื่อแสดงสีแดง สีขาว และสีน้ำเงินตามลำดับ ดังนั้นหากอาร์เรย์เป็นเหมือน [2,0,2,1,1,0] ผลลัพธ์จะเป็น [0,0,1,1,2,2]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ตั้งค่าต่ำ :=0, กลาง :=0 และสูง :=ความยาวของอาร์เรย์ – 1
  • ขณะกลาง <=สูง
    • ถ้า arr[mid] =0 ให้สลับ arr[mid] และ arr[low] และเพิ่มค่าต่ำและกลางขึ้น 1
    • มิฉะนั้น เมื่อ arr[mid] =2, สลับ arr[high] และ arr[mid], ลดระดับสูงสุด 1
    • อย่างอื่นเพิ่มขึ้นกลาง 1

ตัวอย่าง(Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อทำความเข้าใจ −

class Solution(object):
   def sortColors(self, nums):
      low = 0
      mid = 0
      high = len(nums)-1
      while mid<=high:
         if nums[mid] == 0:
            nums[low],nums[mid] = nums[mid],nums[low]
            low+=1
            mid += 1
         elif nums[mid] == 2:
            nums[high], nums[mid] = nums[mid], nums[high]
            high-=1
         else:
            mid += 1
      return nums
ob1 = Solution()
print(ob1.sortColors([2,0,2,1,1,0]))

อินพุต

[2,0,2,1,1,0]

ผลลัพธ์

[0,0,1,1,2,2]