CNTT K25
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Thuật toán sắp xếp vun đống (Heap Sort)

2 posters

Go down

Thuật toán sắp xếp vun đống (Heap Sort) Empty Thuật toán sắp xếp vun đống (Heap Sort)

Bài gửi by hosytan 13/5/2013, 14:59

<Đang cập nhật...>
hosytan
hosytan

Tổng số bài gửi : 29
Join date : 02/05/2013

Về Đầu Trang Go down

Thuật toán sắp xếp vun đống (Heap Sort) Empty Re: Thuật toán sắp xếp vun đống (Heap Sort)

Bài gửi by hbs315 13/12/2013, 10:05

Thuật toán Heap sort hay còn gọi là thuật toán vun đống, đây là một thuật toán kinh điển với độ phức tạp cao hơn Bubble sort nhưng hiệu quả cao hơn.
Thuật toán Heap sort sử dụng cây nhị phân để giải thuật. Cây nhị phân này hoạt động theo nguyên tắc, phần tử trên cùng luôn là lớn nhất.


Thuật toán sắp xếp vun đống (Heap Sort) Heap



Đặc điểm của heap được sắp xếp:
a. Khi cắt bỏ các phần tử ở ngoài cùng thì nó vẫn là heap.
b. Phần tử ở đầu a1 luôn là phần tử lớn nhất của heap

Thuật toán sắp xếp vun đống (Heap Sort) Heap

Giả sử ta có một mảng a[1...x phần tử],
a. Cây cực đại khi a[i]>=a[2*i] và a[i]>=a[2*i+1] với mọi i =1..int(n/2).
b. Cây cực tiểu khi a[i]<=a[2*i] và a[i]<=a[2*i+1]

Để sắp xếp chúng ta có thuật toán sau:
Giả sử chúng ta có một heap với n phần tử
B1. Đưa phần tử lớn nhất ra cuối dãy, đem phần tử lớn nhất ra một biến tạm
B2. Biến phần còn lại trở thành 1 heap với số phần tử mới r=n-1
B3. Nếu r>1 thì vẫn là heap còn phần tử, lặp lại bước 1. Ngược lại thì dừng, xuất ra biến tạm đã sắp xếp

Nguồn: Các thuật toán sắp xếp

hbs315

Tổng số bài gửi : 8
Join date : 13/12/2013

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết