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