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

การจัดเรียงคอลัมน์ของเมทริกซ์ใน Python


สมมติว่าเรามีเมทริกซ์ เราต้องเรียงลำดับคอลัมน์จากน้อยไปหามาก

ดังนั้นหากอินพุตเป็นแบบ

11
21
31
6
6
4
1
11
8

แล้วผลลัพธ์ที่ได้จะเป็น

1
6
4
6
11
8
11
21
31

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

  • R :=จำนวนแถวของเมทริกซ์, C :=จำนวนคอลัมน์ของเมทริกซ์
  • res :=เมทริกซ์ที่มีขนาดเท่ากับเมทริกซ์ที่กำหนดและเติมด้วย 0
  • สำหรับ col ในช่วง 0 ถึง C ให้ทำ
    • ค่า :=นำองค์ประกอบเป็นเวกเตอร์ของเมทริกซ์[col]
    • สำหรับแถวที่อยู่ในช่วง 0 ถึง R ให้ทำ
      • res[row, col] :=ลบองค์ประกอบสุดท้ายออกจากค่า
  • ผลตอบแทน

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

ตัวอย่าง

class Solution:
   def solve(self, matrix):
      R = len(matrix)
      C = len(matrix[0])
      res = [[0] * C for _ in range(R)]
      for col in range(C):
         values = [r[col] for r in matrix]
         values.sort(reverse=True)
         for row in range(R):
            res[row][col] = values.pop()
      return res
ob = Solution()
matrix = [[11, 21, 31],[6, 6, 4],[1, 11, 8]]
print(ob.solve(matrix))

อินพุต

[[11, 21, 31],
[6, 6, 4],
[1, 11, 8]]

ผลลัพธ์

[[1, 6, 4],[6, 11, 8],[11, 21, 31]]