Đôi khi chúng ta cần tất cả các phần tử của ma trận theo một thứ tự đã được sắp xếp. Nhưng vì ma trận có dạng hàng và cột, chúng ta không áp dụng các thuật toán sắp xếp thông thường để lấy kết quả. Thay vào đó, chúng tôi sử dụng các hàm do người dùng định nghĩa bên dưới để sắp xếp các phần tử.
Ví dụ
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])
Chạy đoạn mã trên cho chúng ta kết quả sau -
Đầu ra
Sorted values are 2 3 4 9 11 15 32 50 75