Bài giảng Cấu trúc dữ liệu và giải thuật: Các kỹ thuật thiết kế thuật toán - Phan Mạnh Hiển (2020)

10 19 0
Bài giảng Cấu trúc dữ liệu và giải thuật: Các kỹ thuật thiết kế thuật toán - Phan Mạnh Hiển (2020)

Đang tải... (xem toàn văn)

Thông tin tài liệu

− Ứng dụng giới thiệu cho bạn những bài hát bạn chưa nghe nhưng một người có sở thích tương tự với bạn đã nghe và thích bài hát đó. • Độ đo tương tự: số lượng nghịch đảo (inversions) g[r]

(1)

Các kỹ thuật thiết kế thuật toán

Nguyễn Mạnh Hiển

(2)

Nội dung

• Chia để trị

(3)

Chia để trị

(4)

Chia để trị

• Các bước:

− Chia toán thành số toán − Giải toán theo kiểu đệ quy

− Kết hợp lời giải toán thành lời giải tổng thể • Ví dụ, thuật toán xếp trộn gồm bước:

− Chia dãy n phần tử thành nửa, nửa có n/2 phần tử − Sắp xếp nửa dùng thuật toán xếp trộn

(5)

Đếm số nghịch đảo

• Một ứng dụng âm nhạc muốn giới thiệu cho bạn hát mà bạn chưa nghe cách so sánh sở thích nghe nhạc bạn với người khác

− Bạn xếp hạng n hát

− Ứng dụng tra cứu sở liệu để tìm người có sở thích tương tự với bạn

− Ứng dụng giới thiệu cho bạn hát bạn chưa nghe người có sở thích tương tự với bạn nghe thích hát

(6)

Số nghịch đảo hai xếp hạng

• Xếp hạng tôi: 1, 2, …, n

(7)

• Chia: tách danh sách thành hai nửa A B

• Trị: đếm số nghịch đảo danh sách theo kiểu đệ quy • Hợp: đếm số nghịch đảo (a, b) với a  A b  B

(8)

Đếm số nghịch đảo (a, b) với a  A b  B, giả sử A B xếp • Quét A B từ trái sang phải

• So sánh hai phần tử hành ai bj

• Nếu ai < bj, ai khơng đảo ngược với phần tử cịn lại B • Nếu ai > bj, bj đảo ngược với phần tử lại A

(9)

Đếm số nghịch đảo: thuật toán

• Đầu vào: Danh sách L

(10)

Ngày đăng: 11/03/2021, 07:44

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

Tài liệu liên quan