intTypePromotion=3

Các giải thuật sắp xếp nội

Chia sẻ: Đinh Miên | Ngày: | Loại File: PPT | Số trang:105

0
46
lượt xem
5
download

Các giải thuật sắp xếp nội

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ý 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ử.

Chủ đề:
Lưu

Nội dung Text: Các giải thuật sắp xếp nội

  1. CÁC GIảI THUậT SắP XếP NộI 1
  2. Đị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
  3. 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
  4. 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
  5. PHƯƠNG PHÁP CHọN TRựC TIếP  5 Selection sort
  6.  Vị trí 5­8 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
  7. PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT  Mảng có thứ tự thì a =min(a , a , …, an­1)  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 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ử.  7
  8. 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 ≤ N­1 thì i = i+1; Lặp lại Bước 2  Ngược lại: Dừng. //N­1 phần tử đã nằm đúng vị  trí.  8
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. PHƯƠNG PHÁP CHọN TRựC TIếP SELECTION SORT  Đánh giá giải thuật:  Ở lượt thứ i, cần (n­i) 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

 

Đồng bộ tài khoản