Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 130 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
130
Dung lượng
1,48 MB
Nội dung
Cấu trúc liệu giải thuật Đỗ Tuấn Anh anhdt@it-hut.edu.vn Nội dung z Chương – Thiết kế phân tích (5 tiết) z Chương – Giải thuật đệ quy (10 tiết) z Chương – Mảng danh sách (5 tiết) z Chương – Ngăn xếp hàng đợi (10 tiết) z Chương – Cấu trúc (10 tiết) z Chương – Tìm kiếm (5 tiết) z Chương – Sắp xếp (10 tiết) z Chương – Đồ thị (5 tiết) z Chương – Sắp xếp tìm kiếm ngồi (after) Chương – Sắp xếp Đặt vấn đề Ba phương pháp xếp • • • Sắp xếp lựa chọn – Selection Sort Sắp xếp thêm dần – Insertion Sort Sắp xếp bọt/đổi chỗ - Bubble Sort Sắp xếp hòa nhập – Merge Sort Sắp xếp nhanh/phân đoạn – Quick Sort Sắp xếp vun đống – Heap Sort Đặt vấn đề Sắp xếp thuật tốn bố trí lại phần tử mảng A[n] theo thứ tự định Việc xếp tiến hành dựa khóa phần tử Ví dụ: danh mục điện thoại gồm: Tên quan, địa chỉ, số điện thoại Đơn giản tốn: -Khóa giá trị số -Phần tử có trường khóa, khơng có thành phần khác -Sắp xếp theo thứ tự tăng dần Ba phương pháp xếp zSắp xếp lựa chọn – Selection Sort zSắp xếp thêm dần – Insertion Sort zSắp xếp bọt/đổi chỗ - Bubble Sort Sắp xếp lựa chọn (Selection Sort) zLà phương pháp đơn giản Sắp xếp lựa chọn: Tìm phần tử có giá trị nhỏ đổi chỗ với phần tử số (phần tử đầu mảng) Tìm phần tử có giá trị nhỏ số phần tử số đến số n-1 đổi chỗ với phần tử số Tìm phần tử có giá trị nhỏ số phần tử số đến số n-1 đổi chỗ với phần tử số … Selection Sort: Lượt Array [ ] 36 [1] 24 [2] 10 [3] [4] 12 U N S O R T E D Selection Sort: Kết thúc lượt Array [ ] [1] 24 [2] 10 [3] [4] 36 12 SORTED U N S O R T E D Selection Sort: Lượt Array [ ] [1] 24 [2] 10 [3] [4] 36 12 SORTED U N S O R T E D Selection Sort: Kết thúc lượt Array [ ] [1] 10 [2] 24 [3] 36 [4] SORTED 12 U N S O R T E D 10 Sau đổi chỗ values [0] [1] 30 [2] root 12 30 12 [3] 10 [4] 40 10 40 60 70 [5] 60 [6] 70 Loại khỏi đống 116 Vun lại đống values [0] 30 [1] 10 [2] root 30 12 10 12 [3] [4] 40 40 60 70 [5] 60 [6] 70 117 Đổi chỗ phần tử đỉnh values [0] 30 [1] 10 [2] root 30 12 10 12 [3] [4] 40 40 60 70 [5] 60 [6] 70 118 Sau đổi chỗ values [0] [1] 10 [2] root 12 10 12 [3] 30 [4] 40 30 40 60 70 [5] 60 [6] 70 Loại khỏi đống 119 Vun lại đống values [0] 12 [1] 10 [2] root 12 10 [3] 30 [4] 40 30 40 60 70 [5] 60 [6] 70 120 Đổi chỗ values [0] 12 [1] 10 [2] root 12 10 [3] 30 [4] 40 30 40 60 70 [5] 60 [6] 70 121 Sau đổi chỗ values [0] [1] 10 [2] root 12 10 12 [3] 30 [4] 40 30 40 60 70 [5] 60 [6] 70 Loại khỏi đống 122 Vun lại đống values [0] 10 [1] [2] root 10 12 12 [3] 30 [4] 40 30 40 60 70 [5] 60 [6] 70 123 Đổi chỗ values [0] 10 [1] [2] root 10 12 12 [3] 30 [4] 40 30 40 60 70 [5] 60 [6] 70 124 Sau đổi chỗ values [0] [1] 10 [2] root 12 10 12 [3] 30 [4] 40 30 40 60 70 [5] 60 [6] 70 Tất phần tử xếp 125 Heapsort 21 18 10 11 18 14 14 10 11 21 Heapsort 18 11 14 10 11 21 14 10 18 21 11 14 10 14 18 21 11 10 18 21 10 9 7 11 14 18 21 10 11 14 18 21 10 11 14 18 21 10 11 14 18 21 5 10 11 14 18 21 10 11 14 18 21 10 11 14 18 21 9 10 11 14 18 21 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 18, 21 Độ phức tạp thời gian (1) Tạo đống: {N/2 * O( log N) ⇒ O(N log N) (2) Thực N-1 lần thao tác xóa phần tử đỉnh {Mỗi lần xóa O(log N) ⇒ O(N log N) zĐộ phức tạp thời gian: O(N log N) ... z Chương – Sắp xếp (10 tiết) z Chương – Đồ thị (5 tiết) z Chương – Sắp xếp tìm kiếm ngồi (after) Chương – Sắp xếp Đặt vấn đề Ba phương pháp xếp • • • Sắp xếp lựa chọn – Selection Sort Sắp xếp. .. dung z Chương – Thiết kế phân tích (5 tiết) z Chương – Giải thuật đệ quy (10 tiết) z Chương – Mảng danh sách (5 tiết) z Chương – Ngăn xếp hàng đợi (10 tiết) z Chương – Cấu trúc (10 tiết) z Chương. .. dần – Insertion Sort Sắp xếp bọt/đổi chỗ - Bubble Sort Sắp xếp hòa nhập – Merge Sort Sắp xếp nhanh/phân đoạn – Quick Sort Sắp xếp vun đống – Heap Sort Đặt vấn đề Sắp xếp thuật tốn bố trí lại