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

ในการพิมพ์องค์ประกอบทั้งหมดตามลำดับการเรียงลำดับจากเมทริกซ์ที่จัดเรียงอย่างชาญฉลาดในแถวและคอลัมน์ใน Python


บางครั้งเราต้องการองค์ประกอบทั้งหมดของเมทริกซ์ตามลำดับ แต่เนื่องจากเมทริกซ์อยู่ในรูปของแถวและคอลัมน์ เราจึงไม่ได้ใช้อัลกอริธึมการจัดเรียงตามปกติเพื่อให้ได้ผลลัพธ์ แต่เราใช้ฟังก์ชันที่ผู้ใช้กำหนดด้านล่างเพื่อจัดเรียงองค์ประกอบ

ตัวอย่าง

def heapq(a, k, i):
   greater = i
   l = 2 * i + 1
   r = 2 * i + 2
   if l < k and a[i] < a[l]:
      greater = l
   if r < k and a[greater] < a[r]:
      greater = r
   if greater != i:
      a[i], a[greater] = a[greater], a[i]
      heapq(a, k, greater)

def Sort(val):
   n = len(val)
   for i in range(n, -1, -1):
      heapq(val, n, i)
   for i in range(n - 1, 0, -1):
      val[i], val[0] = val[0], val[i]
      heapq(val, i, 0)
x = [11, 3, 50, 75, 4, 32, 9, 2, 15]
Sort(x)
n = len(x)
print("Sorted values are")
for i in range(n):
   print("%d" % x[i])

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

ผลลัพธ์

Sorted values are
2
3
4
9
11
15
32
50
75