1. Trang chủ
  2. » Tất cả

Cấu trúc dữ liệu và giải thuật chapter04 sorting

50 2 0

Đ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

Nội dung

CÁC THUẬT TOÁN SẮP XẾP Bùi Tiến Lên 01/01/2017 Bài toán sắp xếp I Sắp xếp một danh sách các đối tượng theo một thứ tự nào đó là một trong những công việc phổ biến I Sắp xếp là một yêu cầu không thể th[.]

CÁC THUẬT TOÁN SẮP XẾP Bùi Tiến Lên 01/01/2017 Bài toán xếp I I I Sắp xếp danh sách đối tượng theo thứ tự công việc phổ biến Sắp xếp yêu cầu thiếu việc viết phần mềm ứng dụng Do đó, nghiên cứu phương pháp xếp cần thiết cho học lập trình Spring 2017 Data structure & Algorithm Bài toán xếp (cont.) Định nghĩa Cho dãy a có n phần tử có thứ tự Hãy xếp dãy {a0 , a1 , , an−1 } theo thứ tự tăng dần Spring 2017 Data structure & Algorithm Các phương pháp xếp Có nhiều phương pháp xếp khác Mỗi phương pháp có đặc điểm riêng I Phương pháp Selection Sort I Phương pháp Insertion Sort I Phương pháp Bubble Sort I Phương pháp Shell Sort I Phương pháp Heap Sort I Phương pháp Merge Sort I Phương pháp Quick Sort I Phương pháp Radix Sort I Phương pháp Counting Sort Spring 2017 Data structure & Algorithm SELECION SORT Selection Sort Ý tưởng thuật toán sau: Giả sử dãy a chia làm hai phần: phần trái xếp s phần bên phải chưa xếp u s = ∅ u = a Tìm phần tử nhỏ xm u Loại xm khỏi u thêm vào cuối s Nếu u cịn phần tử quay lại bước Spring 2017 Data structure & Algorithm Selection Sort (cont.) 10 11 12 13 void SelectionSort (int a[], int n) { int min; for (int i = 0; i < n; i++) { = i; for (int j = i + 1; j < n; j++) if (a[j] < a[min ]) = j; if (a[min] < a[i]) Swap(a[min], a[i]); } } Spring 2017 Data structure & Algorithm Đánh giá Phân tích chi phí thực theo n (số lượng phần tử mảng) Trường hợp tốt trung bình xấu Spring 2017 O(g(n)) ? ? ? Data structure & Algorithm INSERTION SORT Insertion Sort Ý tưởng thuật toán sau: Giả sử dãy a chia làm hai phần: phần trái xếp s phần bên phải chưa xếp u s = ∅ u = a Lấy phần tử x u Loại x khỏi u Chèn x vào s cho vị trí Nếu u cịn phần tử quay lại bước Spring 2017 Data structure & Algorithm 10 ... Shell Sort I Được đề xuất [Shell, 1959] I Thuật toán cải tiến thuật toán Insertion Sort I Có đột phá rào cản chi phí O(n2 ) thuật tốn trước Ý tưởng thuật toán I Chia dãy a thành h dãy a0 , a0+h... SORT Insertion Sort Ý tưởng thuật toán sau: Giả sử dãy a chia làm hai phần: phần trái xếp s phần bên phải chưa xếp u s = ∅ u = a Lấy phần tử x u Loại x khỏi u Chèn x vào s cho vị trí Nếu u cịn... SORT Selection Sort Ý tưởng thuật toán sau: Giả sử dãy a chia làm hai phần: phần trái xếp s phần bên phải chưa xếp u s = ∅ u = a Tìm phần tử nhỏ xm u Loại xm khỏi u thêm vào cuối s Nếu u cịn phần

Ngày đăng: 25/03/2023, 08:39

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w