Với trường hợp xấu nhất cho , chúng ta có thể xây dựng các trường hợp xấu nhất cho n + 1 như sau: chúng ta làm một 'chu kỳ trao đổi như sau: chúng ta hãy n + 1 , đặt nó trong một [ 0 ] , và chúng tôi trao đổi một [ 0 ] với các phần tử tối đa của con của nó, đó là một [ 1 ] hoặc một [ 2 ] , mà chúng tôi lại trao đổi với các phần tử tối đa của con của nó và như vậy, cho đến khi chúng tôi rời khỏi n đống -element, tại thời điểm đó chúng tôi đặt phần tử cuối cùng đó ở n + 1nn+1n+1a[0]a[0]a[1]a[2]nn+1-thị trí.
Một ví dụ: trường hợp xấu nhất cho là [ 5 , 4 , 3 , 2 , 1 ] . Chúng tôi trao đổi trong 6 tạo ra heap [ 6 , 5 , 3 , 4 , 1 ] , sau đó chúng tôi kết thúc bằng 2, chúng tôi chèn vào cuối: [ 6 , 5 , 3 , 4 , 1 , 2 ] .n=5[5,4,3,2,1][6,5,3,4,1][6,5,3,4,1,2]
Phương pháp công trình trên bằng cảm ứng: chúng tôi bắt đầu từ kết quả tồi tệ nhất đối với yếu tố và thực hiện một Sift xuống hoạt động theo hướng ngược lại, tối đa hóa số lượng giao dịch hoán đổi nó đã làm ( ⌊ log ( n ) ⌋ giao dịch hoán đổi). Bạn không thể thực hiện nhiều giao dịch hoán đổi hơn số này, vì vậy bạn tối đa hóa số lần hoán đổi sau thao tác trích xuất đầu tiên, sau đó bạn còn lại chính xác là trường hợp xấu nhất cho n - 1 phần tử cho thao tác trích xuất tiếp theo. Điều này ngụ ý rằng số lượng giao dịch hoán đổi thực sự là tối đa.n−1⌊log(n)⌋n−1
Lưu ý rằng phương pháp này cho kết quả khác với mức bạn đã nhận được:
[1]
[2, 1]
[3, 2, 1]
[4, 3, 1, 2]
[5, 4, 1, 3, 2]
[6, 5, 1, 4, 2, 3]
[7, 6, 1, 5, 2, 4, 3]
[8, 7, 1, 6, 2, 4, 3, 5]
[9, 8, 1, 7, 2, 4, 3, 6, 5]
[10, 9, 1, 8, 2, 4, 3, 7, 5 ,6]
Tuy nhiên, cả hai giải pháp đều đúng:
[5, 4, 1, 3, 2]
[2, 4, 1, 3| 5]
[4, 2, 1, 3| 5]
[4, 3, 1, 2| 5]
[2, 3, 1| 4, 5]
[3, 2, 1| 4, 5]
[5, 4, 3, 2, 1]
[1, 4, 3, 2| 5]
[4, 1, 3, 2| 5]
[4, 2, 3, 1| 5]
[1, 2, 3| 4, 5]
[3, 2, 1| 4, 5]
[6, 5, 1, 4, 2, 3]
[3, 5, 1, 4, 2| 6]
[5, 3, 1, 4, 2| 6]
[5, 4, 1, 3, 2| 6]
[2, 4, 1, 3| 5, 6]
[4, 2, 1, 3| 5, 6]
[4, 3, 1, 2| 5, 6]
[2, 3, 1| 4, 5, 6]
[3, 2, 1| 4, 5, 6]
[6, 5, 3, 4, 1, 2]
[2, 5, 3, 4, 1| 6]
[5, 2, 3, 4, 1| 6]
[5, 4, 3, 2, 1| 6]
[1, 4, 3, 2| 5, 6]
[4, 1, 3, 2| 5, 6]
[4, 2, 3, 1| 5, 6]
[1, 2, 3| 4, 5, 6]
[3, 2, 1| 4, 5, 6]