Các thuật toán tìm kiếm

44 108 0
Các thuật toán tìm kiếm

Đ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

Phần Các thuật toán xếp Các thuật toán xếp    Các thuật toán xếp xét đến phần dựa hai phép tốn bản, so sánh hai phần tử với đặt lại phần tử danh sách Độ phức tạp thuật toán xếp dựa phép so sánh hai phần tử xem xét thơng qua số phép so sánh (trong số trường hợp số lần đổi chỗ – đặt lại phần tử quan tâm) Số tối đa phép so sánh cần dùng để xếp danh sách coi trường hợp xấu mà thuật toán gặp phải Các thuật toán xếp/2 of 44 Các thuật toán xếp    Nếu ta biểu diễn thuật toán xếp dựa phép so sánh định nhị phân số phép tốn cần thực độ dài đường từ gốc tới Số định nhị phân n! Chiều cao định nhị phân h  log 2(n!) Các thuật toán xếp/3 of 44 Các thuật toán xếp  Như số phép so sánh tối thiểu phải thực [log 2(n!)] Nhận xét:  Dễ dàng thấy n!4 n!> nn/4 Thật vậy, với n=4 bất đẳng thức hiển nhiên Giả thiết có n! > nn/4 Xét bất đẳng thức (n+1)nn/4>(n+1)(n+1)/4, hay nn/4>(n+1)(n-3)/4, bất đẳng thức lại tương đương với nn >(n+1)n-3, hay (n+1)3 >((n+1)/n)n Điều hiển nhiên (n+1)3>e >((n+1)/n)n, với n>4  Suy ra: khơng có thuật tốn xếp dựa phép so sánh lại có đánh giá tốt O(nlogn) Các thuật toán xếp/4 of 44 Selection sort    Bài toán: Cho mảng n số nguyên X(1), X(2), , X(n) Hãy xếp lại mảng theo thứ tự không giảm Mục nhằm trình bày thuật tốn xếp đơn giản thơng dụng để giải tốn Thuật toán gọi thuật toán chọn hay xếp Các thuật toán xếp/5 of 44 Selection sort       Mô tả thuật toán: Input: Dãy X(1), X(2), , X(n) số nguyên số phần tử n Output: Dãy X(1), X(2), , X(n) không giảm; Chọn phần tử nhỏ Xmin phần tử X(1), X(2), , X(n) hốn vị (tức Xmin) với phần tử X(1); Chọn phần tử nhỏ Xmin phần lại dãy X(2), X(3), , X(n) hốn vị (tức Xmin) với phần tử thứ hai X(2); Tiếp tục thủ tục để chọn phần tử X(3), X(4), , X(n-1) thích hợp cho dãy Các thuật toán xếp/6 of 44 Selection sort           Chi tiết: Với i = đến n –1 Tìm X(k) = { X(i), X(i+1), X(i+2), , X(n)}; If ki Then Đổi chỗ(X(k), X(i)); Dãy X(1), X(2), , X(n) không giảm For i:=1 to n-1 k:=i; for j:=i+1 to n If X(j) < X(k) Then k:=j; If ki Then Đổi_chỗ(X(i),X(k)); End For Các thuật toán xếp/7 of 44 Selection sort  Đánh giá: Dễ dàng thấy bước lặp thứ i có n-i phép so sánh phép hoán vị; Vậy suy thuật tốn có n(n-1)/2 phép so sánh n-1 phép hốn vị Thuật tốn có độ phức tạp O(n2) Trong trường hợp xấu thuật tốn có số phép tốn so với thuật toán chèn, đặc biệt số phép hốn vị nhiều so với thuật tốn xếp chèn Điều có lợi liệu lớn Các thuật toán xếp/8 of 44 Insertion sort       Bài toán: Sắp xếp mảng số nguyên X(1), X(n) theo thứ tự khơng giảm Mơ tả thuật tốn Giả sử có phần đầu mảng B(i-1) = không giảm; Kiểm tra tới phần tử X(i); Tìm vị trí "thích hợp" X(i) dãy B(i-1) chèn vào Sau bước 2) dãy B(i) =

Ngày đăng: 23/05/2018, 15:03

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan