Bài giảng cấu trúc dữ liệu và giải thuật – bài 5 phương pháp sắp xếp đơn giản

31 5 0
Bài giảng cấu trúc dữ liệu và giải thuật – bài 5 phương pháp sắp xếp đơn giản

Đ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

Cấu trúc liệu giải thuật Bài Phương pháp xếp đơn giản Lecturer: PhD Ngo Huu Phuc Tel: 0438 326 077 Mob: 098 5696 580 Email: ngohuuphuc76@gmail.com Ngo Huu Phuc, Le Quy Don Technical University Bài 5: Các phương pháp xếp đơn giản Nội dung: 6.1 Khái niệm vai trò xếp (13) 6.2 Sắp xếp chèn (6) 6.3 Sắp xếp chọn (4) 6.4 Sắp xếp bọt (4) Tham khảo: Lecture 16 Introduction to Sorting.htm Data Structures and Algorithms Sorting.htm Tham khảo giảng TS Nguyễn Nam Hồng Ngo Huu Phuc, Le Quy Don Technical University 5.1 Khái niệm vai trò xếp 5.1.1 Các thuật tốn xếp 5.1.2 Vai trị xếp 5.1.3 Các vấn đề xếp 5.1.4 Một số ứng dụng xếp 5.1.5 Ý tưởng xếp phương pháp thực 5.1.6 Phân tích hiệu giải thuật xếp Ngo Huu Phuc, Le Quy Don Technical University 5.1.1 Các thuật toán xếp (1/2)  Thế xếp?  Đưa dãy đối tượng dạng thứ bậc  Giải thuật xếp dựa so sánh  Việc xếp dựa phép toán so sánh  Các phép toán xếp  So sánh  Tráo đổi phần tử Ngo Huu Phuc, Le Quy Don Technical University 5.1.1 Các thuật toán xếp (1/2)  Quy ước  Phương pháp xếp chương xếp  Các giải thuật thay cho  Mỗi mảng có số phần tử  Thành phần để xem xét xếp so sánh  N số phần tử cần xếp Ngo Huu Phuc, Le Quy Don Technical University 5.1.2 Vai trò xếp (1/2)  Nếu đối tượng mảng theo trật tự đó, truy xuất thơng tin nhanh chóng xác  Việc xây dựng giải thuật cho phép xếp phần tử mảng nhiều thời gian, độ phức tạp giải thuật cỡ O(n2)  ≈ 50,000,000,000,000 bước cho việc mảng có 10,000,000 phần tử ⇒ 500,000 giây = 58 ngày, v ới máy tính thực 100 triệu phép tính tốn/giây  Với giải thuật xếp cho mảng, độ phức tạp giải thuật cỡ O(nlogn)  ≈ 250,000,000 bước cho việc mảng có 10,000,000 phần tử ⇒ 2.5 giây, với máy tính thực 100 triệu phép tính tốn/giây Ngo Huu Phuc, Le Quy Don Technical University 5.1.2 Vai trò xếp (2/2)  Như vậy, xếp giải thuật  Thông thường, 25% khả CPU dành cho việc xếp  Sắp xếp bước cho số giải thuật khác, ví dụ: tìm kiếm nhị phân  Có nhiều cách tiếp cận đến giải thuật xếp, từ đó, có nhiều giải thuật săp xếp khác Ngo Huu Phuc, Le Quy Don Technical University 5.1.3 Các vấn đề xếp  Sắp xếp theo trật tự tăng hay giảm?  Với giải thuật xếp, dùng cho theo trật tăng hay giảm, việc thay đổi phép so sánh: =  Các khóa giải thuật xếp?  Có thể dùng nhiều khóa cho giải thuật xếp Cần lưu ý đến ý tưởng toán  Với liệu khơng phải số sao?  Với chuỗi, sử dụng phép so sánh chuỗi, từ điển, hay quy tắc  Ví dụ: Sắp chuỗi Brown-Williams, Brown America, Brown, John? Ngo Huu Phuc, Le Quy Don Technical University 5.1.4 Một số ứng dụng xếp (1/2)  Với kết trình xếp, số vấn đề thực dễ dàng  Nói chung, có q trình xếp tăng tốc cho tìm kiếm ứng dụng cụ thể  Ví dụ, có mảng sắp, dễ dàng tìm phần tử lớn thứ k mảng, với thời gian số Ngo Huu Phuc, Le Quy Don Technical University 5.1.4 Một số ứng dụng xếp (2/2) Một số ứng dụng có dùng xếp  Các từ từ điển xếp  Thông thường, Files thư mục theo trật tự  Trong thư viện, sách theo trật tự  Các khóa học trường đại học theo khoa, theo mã khóa học  Các kiện theo thời gian  … 10 Ngo Huu Phuc, Le Quy Don Technical University 5.2 Sắp xếp chèn (3/6) Chuỗi Phần tử chèn Giả sử: Sắp xếp dãy số nguyên theo phương pháp chèn Giá trị nhỏ 8, thay cho 8, dãy có kích thước tăng lên (có phần tử Hoạt động Insertion Sort 17 Ngo Huu Phuc, Le Quy Don Technical University 5.2 Sắp xếp chèn (4/6) #include void inputdata(int* list,int n) #include { #define MAX 100 int i; void inputdata(int* list,int n); printf("Nhap cac phan tu cua mang\n"); void printlist(int* list,int n); for(i=0;i

Ngày đăng: 26/12/2021, 17:19

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

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

Tài liệu liên quan