Cấu trúc dữ liệu di động chuong 2a

59 97 0
Cấu trúc dữ liệu di động chuong 2a

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT CHƯƠNG II TÌM KIẾM VÀ SẮP XẾP Nguyễn Trọng Chỉnh chinhnt@uit.edu.vn GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP BUBBLE SORT PHƯƠNG PHÁP INTERCHANGE SORT (đọc thêm) PHƯƠNG PHÁP HEAP SORT PHƯƠNG PHÁP SHELL SORT (đọc thêm) GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP BUBBLE SORT Bubble Sort, hay gọi xếp bọt * Ý tưởng: Giả sử dãy A={ai} có n phần tử Bắt đầu từ cuối dãy, phần tử nhỏ đẩy dần phía trái dãy đến vị trí cách thực phép hoán vị phần tử liên tiếp có tạo nghịch Khi phần tử nhỏ đưa đầu dãy xét việc hoán vị cho dãy gồm phần tử lại GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP BUBBLE SORT * Giải Thuật: (theo ngôn ngữ tự nhiên) Đầu vào: mảng A gồm n phần tử chưa có thứ tự Đầu ra: mảng A gồm n phần tử có thứ tự - Bước 1: i  - Bước 2: j  n-1 - Bước 3: Nếu j  i thực bước Ngược lại, A[j] i; j ) if (a[j] < a[j-1]) hoandoi(a[j], a[j-1]); } } GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP BUBBLE SORT j=7 i=0 j=6 i=0 6 j=5 i=0 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP BUBBLE SORT j=4 i=0 6 j=3 i=0 j=2 i=0 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP BUBBLE SORT j=1 i=0 i=1 i=2 i=3 i=4 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP BUBBLE SORT i=5 i=6 i=7 10 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP HEAP SORT k=3 Build Heap n=8 k=2 Build Heap n=8 k=1 Build Heap n=8 45 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP HEAP SORT k=0 Build Heap n=8 n=8 Sort 1 n=7 k=0 Heapify 46 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP HEAP SORT n=7 k=2 Heapify n=7 k=6 Heapify n=7 Sort 47 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP HEAP SORT n=6 k=0 Heapify 8 n=4 k=0 Heapify n=5 k=0 Heapify 4 48 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP HEAP SORT n =3 k=0 Heapify 8 k=0 n=2 Heapify n=1 k=0 Heapify 49 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP HEAP SORT * Đánh giá giải thuật: Trong trường hợp giải thuật Heap Sort có độ phức tạp trung bình O(nlogn) cho phép so sánh phép gán 50 GIẢI THUẬT SẮP XẾP PHƯƠNG PHÁP HEAP SORT BÀI TẬP: Cho dãy A = {3, 4, 1, 2, 6, 5} 1) Trình bày bước trình xếp dãy A theo thứ tự tăng dần với phương pháp Heap Sort 2) Trường hợp tốt xấu phương pháp Heap Sort xảy dãy A có đặc điểm nào? Số phép tính trường hợp tốt nhất? 51 GIẢI THUẬT SẮP XẾP * Xây dựng Heap Max từ dãy A: 3, 4, 1, 2, 6, - Heapify i = 2, max j = 5, A[2] < A[5]  đổi chổ 3, 4, 5, 2, 6, - Heapify i = 1, max j = 4, A[1] < A[4]  đổi chổ 3, 6, 5, 2, 4, - Heapify i = 0, max j = 1, A[0] < A[1]  đổi chổ 52 GIẢI THUẬT SẮP XẾP 6, 3, 5, 2, 4, Heapify i = 1, max j = 4, A[1]

Ngày đăng: 08/09/2017, 15:38

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan