Các giải thuật sắp xếp nội
lượt xem 6
download
Ý tưởng: mô phỏng một trong những cách sắp xếp tự nhiên nhất trong thực tế: Chọn phần tử nhỏ nhất trong N phần tử ban đầu, đưa phần tử này về vị trí đúng là đầu dãy hiện hành Xem dãy hiện hành chỉ còn N-1 phần tử của dãy ban đầu, bắt đầu từ vị trí thứ 2; lặp lại quá trình trên cho dãy hiện hành... đến khi dãy hiện hành chỉ còn 1 phần tử.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Các giải thuật sắp xếp nội
- CÁC GIảI THUậT SắP XếP NộI 1
- ĐịNH NGHĨA BÀI TOÁN SắP XếP Sắp xếp là quá trình xử lý một danh sách các phần tử (hoặc các mẫu tin) để đặt chúng theo một thứ tự thỏa mãn một tiêu chuẩn nào đó dựa trên nội dung thông tin lưu giữ tại mỗi phần tử 2
- KHÁI NIệM NGHịCH THế Khái niệm nghịch thế: Xét một mảng các số a , a , … a 0 1 n Nếu có i a , thì ta gọi đó là một nghịch i j thế. Mảng chưa sắp xếp sẽ có nghịch thế. Mảng đã có thứ tự sẽ không chứa nghịch thế. a ≤ a ≤ … ≤ a 0 1 n 3
- CÁC PHƯƠNG PHÁP SắP XếP THÔNG DụNG Selection sort Phức tạp hơn •Shell sort Insertion sort Hiệu quả cao • Heap sort Interchange sort • Quick sort Bubble sort • Merge sort Shaker sort •Radix sort Binary Insertion sort • … Lớp thuật toán Đơn giản, khác Chi phí cao 4
- PHƯƠNG PHÁP CHọN TRựC TIếP 5 Selection sort
- Vị trí 58 phần tử nhỏ nhất là : 12 5 1 6 3 7 4 10 2 0 1 2 3 4 5 6 7 8 Min =a For (j=a+1;j
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT Mảng có thứ tự thì a =min(a , a , …, an1) i i i+1 Ý tưởng: mô phỏng một trong những cách sắp xếp tự nhiên nhất trong thực tế: Chọn phần tử nhỏ nhất trong N phần tử ban đầu, đưa phần tử này về vị trí đúng là đầu dãy hiện hành Xem dãy hiện hành chỉ còn N1 phần tử của dãy ban đầu, bắt đầu từ vị trí thứ 2; lặp lại quá trình trên cho dãy hiện hành... đến khi dãy hiện hành chỉ còn 1 phần tử. 7
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT Bước 1 : i = 1; Bước 2 : Tìm phần tử a[min] nhỏ nhất trong dãy hiện hành từ a[i] đến a[N] Bước 3 : Nếu min ≠ i, Hoán vị a[min] và a[i] Bước 4 : Nếu i ≤ N1 thì i = i+1; Lặp lại Bước 2 Ngược lại: Dừng. //N1 phần tử đã nằm đúng vị trí. 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT Ví dụ: sắp xếp dãy số sau 3,5,1,6,12,7,4,10,2 3 5 1 6 12 7 4 10 2 9
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 3 5 1 6 12 7 4 10 2 i=0 min=2 1 5 3 6 12 7 4 10 2 10 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 5 3 6 12 7 4 10 2 i=1 min=8 1 2 3 6 12 7 4 10 5 11 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 2 3 6 12 7 4 10 5 i=min=2 1 2 3 6 12 7 4 10 5 12 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 2 3 6 12 7 4 10 5 i=3 min=6 1 2 3 4 12 7 6 10 5 13 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 2 3 4 12 7 6 10 5 i=4 min=8 1 2 3 4 5 7 6 10 12 14 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 2 3 4 5 7 6 10 12 i=5 min=6 1 2 3 4 5 6 7 10 12 15 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 2 3 4 5 6 7 10 12 i=min=6 1 2 3 4 5 6 7 10 12 16 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 2 3 4 5 6 7 10 12 i=min=7 1 2 3 4 5 6 7 10 12 17 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT 1 2 3 4 5 6 7 10 12 i=min=8 1 2 3 4 5 6 7 10 12 18 0 1 2 3 4 5 6 7 8
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT void SelectionSort(){ int min; // chỉ số phần tử nhỏ nhất trong dãy hiện hành for (int i=0; i
- PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT Đánh giá giải thuật: Ở lượt thứ i, cần (ni) lần so sánh để xác định phầntử nhỏ nhất hiện hành. Số lượng phép so sánh không phụ thuộc vào tình trạng của dãy số ban đầu. Trong mọi trường hợp, số lần so sánh là : n −1 n(n − 1) ∑n −i = 2 i =1 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
TÌM KIẾM VÀ SẮP XẾP NỘI - PHẦN 1
52 p | 109 | 32
-
Bài giảng Cấu trúc dữ liệu: Chương 2 - Các giải thuật tìm kiếm và sắp thứ tự
186 p | 185 | 22
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
186 p | 84 | 21
-
Bài giảng Cấu trúc dữ liệu và thuật toán - Chương 2: Tìm kiếm và sắp xếp
79 p | 100 | 17
-
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 2 - ThS. Phạn Nguyệt Thuần
143 p | 91 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2.2 - Trần Minh Thái (2016)
129 p | 45 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các giải thuật sắp xếp - Lê Thị Ngọc Hạnh
40 p | 89 | 7
-
Bài giảng Các giải thuật tìm kiếm, sắp xếp
98 p | 109 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2.2 - Trần Minh Thái (Trường Đại học Hồng Bàng )
123 p | 60 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Một số giải thuật sắp xếp và tìm kiếm
29 p | 41 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Giải thuật sắp xếp nổi bọt, chèn, chọn - TS. Trần Ngọc Việt
30 p | 10 | 5
-
Bài giảng Cấu trúc dữ liệu và giải thuật (Data Structures and Algorithms): Chương 6 - GV. Ngô Công Thắng
22 p | 17 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Sắp xếp - Nguyễn Mạnh Hiển (HKI năm 2020-2021)
39 p | 39 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 6: Giải thuật sắp xếp
17 p | 32 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Trường ĐH Công nghệ Thông tin
191 p | 26 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Giải thuật sắp xếp và tìm kiếm đơn giản
10 p | 27 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 2: Tìm kiếm và sắp xếp nội
18 p | 77 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 6 - Ngô Công Thắng
9 p | 51 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn