1. Trang chủ
  2. » Công Nghệ Thông Tin

PHÂN TÍCH CÁC GIẢI THUẬT SẮP XẾP pps

103 787 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 103
Dung lượng 3,14 MB

Nội dung

PHÂN TÍCH CÁC GIẢI THUẬT SẮP XẾP 1 Nội dung  Giải thuật Insertion-Sort  Các giải thuật chia để trị  Giải thuật Quicksort  Giải thuật Mergesort  Giải thuật HeapSort  Giải thuật Couting Sort 2  Insertion Sort 3  Insertion Sort – Ý tưởng    Mọi dãy      luôn có i-1phần tử đầu tiên       đã có thứ tự (i ≥ 2)    Tìm cách chèn phần tử   vào vị trí thích hợp của đoạn đã được sắp để có dãy mới      trở nên có thứ tự  Vị trí này chính là pos thỏa : ≤ (1≤pos≤i) 4 Chương 4: Sắp xếp Insertion Sort – Ví dụ 2 8 5 1 6 4 1512 1 2 3 4 5 6 70 5 Chương 4: Sắp xếp Insertion Sort – Ví dụ 2 8 5 1 6 4 1512 i x 1 2 3 4 5 6 70 pos 2  !"# 6 Chương 4: Sắp xếp Insertion Sort – Ví dụ 12 8 5 1 6 4 152 i x 1 2 3 4 5 6 70 pos  !"$# 8 7 Chương 4: Sắp xếp Insertion Sort – Ví dụ 8 12 5 1 6 4 152 i x 1 2 3 4 5 6 70 pos % !"$%# 5 8 Chương 4: Sắp xếp Insertion Sort – Ví dụ 5 8 12 1 6 4 152 i x 1 2 3 4 5 6 70 pos & !"$&# 1 9 Chương 4: Sắp xếp Insertion Sort – Ví dụ 2 5 8 12 6 4 151 i x 1 2 3 4 5 6 70 pos ' !"$'# 6 10 Chương 4: Sắp xếp [...]... Quick sort gồm: - Nó là một giải thuật đệ quy - Nó cần khoảng N2 thao tác căn bản trong trường hợp xấu nhất - Nó dễ bị lỗi khi lập trình (fragile) Giải thuật căn bản của Quicksort Quicksort là một phương pháp xếp thứ tự theo kiểu “chia để trị” Nó thực hiện bằng cách phân hoạch một tập tin thành hai phần và sắp thứ tự mỗi phần một cách độc lập với nhau Giải thuật có cấu trúc như sau: void quicksort1(int... partition(left,right); quicksort(left,i-1); quicksort(i+1,right); } } TỔNG HỢP CHIA TRỊ Giải thuật căn bản của Quicksort //x=A[r] luôn được chọn làm phần tử chốt (pivot) Phân tích độ phức tạp: trường hợp xấu nhất Phân tích độ phức tạp: trường hợp tốt nhất • Trường hợp tốt nhất xảy ra với Quicksort là khi mỗi lần phân hoạch chia tập tin ra làm hai phần bằng nhau Điều này làm cho số lần so sánh... Insertion Sort – Đánh giá thuật toán 17  Đối với mỗi i = 1, 3, , n -1, trong đó n =length[A], gọi tJ là số lần kiểm tra vòng lặp while trong dòng 5 được thực thi  Gọi T(n) là thời gian thực hiện thuật giải  T(n) = c1n + c2(n-1)+ c4(n-1)+ c5Σj=2,ntj+ c6Σj=2,n (tj-1) + c7Σj=2,n (tj-1)+ c8(n-1) Insertion Sort – Đánh giá thuật toán 18  Trường hợp tốt nhất: Khi dãy đã được sắp xếp, j = 1  Daạng an +... từng phần tử khi phân hoạch lần đầu • Từ chương 1, việc giải hệ thức truy hồi này đã đưa đến lời giải: CN ≈ N lgN Phân tích độ phức tạp: trường hợp xấu nhất • Một trường hợp xấu nhất của Quicksort là khi tập tin đã có thứ tự rồi • Khi đó, phần tử thứ nhất sẽ đòi hỏi n so sánh để nhận ra rằng nó nên ở đúng vị trí thứ nhất Hơn nữa, sau đó phân đoạn bên trái là rỗng và và phân đoạn bên phải... Insertion Sort – Đánh giá thuật toán 14 void InsertionSort(int a[], int n){ 0 int pos, key; 1 for(int i=1; i0 && key . PHÂN TÍCH CÁC GIẢI THUẬT SẮP XẾP 1 Nội dung  Giải thuật Insertion-Sort  Các giải thuật chia để trị  Giải thuật Quicksort  Giải thuật Mergesort  Giải thuật HeapSort  Giải thuật Couting. c 7 Σ j=2,n (t j -1)+ c 8 (n-1) 17 Chương 4: Sắp xếp Insertion Sort – Đánh giá thuật toán  Trường hợp tốt nhất: Khi dãy đã được sắp xếp, j = 1 18 Chương 4: Sắp xếp  Dang an + b  đô phưc tap. !"$)# 15 12 Chương 4: Sắp xếp Insertion Sort – Ví dụ 2 4 5 6 8 12 151 pos 1 2 3 4 5 6 70 13 Chương 4: Sắp xếp Insertion Sort – Đánh giá thuật toán void InsertionSort(int

Ngày đăng: 25/07/2014, 16:20

TỪ KHÓA LIÊN QUAN

w