Cấu trúc dữ liệu & Giải thuật Bộ môn Công nghệ Tri thức BÀI TẬP THỰC HÀNH 04 SẮP XẾP Bài thực hành này sẽ được thực hiện trong 2 tuần Trong bài thực hành này, ta xét bài toán sắp xếp tăng dần 1 Nội du[.]
Cấu trúc liệu & Giải thuật Bộ môn Công nghệ Tri thức BÀI TẬP THỰC HÀNH 04: SẮP XẾP Bài thực hành thực tuần Trong thực hành này, ta xét toán xếp tăng dần Nội dung thực hành 1.1 Tóm tắt • Sinh viên thực cài đặt thuật toán xếp sau: Selection Sort, Insertion Sort, Binary Insertion Sort, Bubble Sort, Shaker Sort, Shell Sort, Heap Sort, Merge Sort, Quick Sort, Counting Sort, Radix Sort, Flash Sort • Sau cài đặt xong 12 thuật tốn nói trên, sinh viên tiến hành thí nghiệm để thấy thời gian thực thi thuật tốn ứng với tình trạng liệu đầu vào so sánh thời gian thực thi thuật tốn với Ở đây, ta xét trình trạng liệu đầu vào: – Đã có thứ tự – Có thứ tự ngược – Ngẫu nhiên – Gần có thứ tự 1.2 Phần lập trình Ta thí nghiệm với tình trạng liệu: có thứ tự (sorted), có thứ tự ngược (reversed), ngẫu nhiên (random), gần có thứ tự (nearly sorted) Với tình trạng, ta khảo sát kích thước liệu (số phần tử) khác nhau: 1000, 3000, 10000, 30000, 100000 Với tình trạng liệu state, với kích thước liệu size, với thuật tốn xếp sortAlg, chương trình sinh viên cần phải: Tạo mảng liệu có tình trạng state có kích thước size Sắp xếp mảng liệu thuật toán sortAlg đo thời gian thực thi sortAlg Xuất kết xếp file: • Mỗi phần tử cách khoảng trắng • Tên file đặt theo định dạng: __.txt Ví dụ: QuickSort_NearlySorted_1000.txt Các file kết quả: file lưu kết xếp nói trên, để tiện lợi cho việc thống kê kết quả, chương trình bạn cần phải xuất thời gian thực thi tất lần chạy file chung: • Ta qui ước đặt tên file Result.csv Định dạng *.csv mở Excel, dễ dàng cho việc vẽ đồ thị • File Result.csv có dạng Hình Trong đó, dịng, ô tình trạng liệu ban đầu, ô thứ hai kích thước liệu, ô thời gian thực thi thuật tốn (mình điền mẫu tay hai dịng để minh họa, chương trình bạn cần điền hết tất ô thời gian thực thi) Trang / Cấu trúc liệu & Giải thuật Bộ mơn Cơng nghệ Tri thức Hình 1: Minh họa file Result.csv • Ghi kết file *.csv nào? Nếu ta mở file *.csv Notepad++ thấy Hình Như vậy, thực chất dịng cách dấu phẩy Ví dụ, ta ghi dịng thứ câu lệnh: fprintf(f, "Random, 1000, 0, 0, 0, 0, 0, 0, 0\n"); Hình 2: File Result.csv mở Notepad++ 1.3 Phần báo cáo Gồm có nội dung sau: Trình bày thuật tốn nêu mục 1.1: ý tưởng, thuật toán, đánh giá thuật tốn Trình bày kết thí nghiệm cho nhận xét • Cách trình bày kết thí nghiệm: thay đưa số thời gian chạy, ta nên trực quan hóa đồ thị; vậy, dễ quan sát nhận xét Các bạn vẽ đồ thị ứng với tình trạng liệu đầu vào Trong đó, đồ thị có trục tung kích thước liệu, trục hồnh thời gian chạy (có dạng Hình 3) • Nhận xết đồ thị vẽ, độ nhanh/chậm thuật toán trường hợp Lý giải Trang / Cấu trúc liệu & Giải thuật Bộ mơn Cơng nghệ Tri thức Hình 3: Minh họa dạng đồ thị Quy định nộp • Sinh viên tạo thư mục chứa nội dung sau: – Thư mục : chứa toàn project (xóa thư mục debug, tập tin *.ncb) – Tập tin Report.pdf: tập tin chứa báo cáo sinh viên • Sinh viên nộp tập tin tập tin nén thư mục phía • Các nộp sai quy định bị điểm • Các làm giống bị điểm môn học Trang / ... tồn project (xóa thư mục debug, tập tin *.ncb) – Tập tin Report.pdf: tập tin chứa báo cáo sinh viên • Sinh viên nộp tập tin tập tin nén thư mục phía •... họa file Result.csv • Ghi kết file *.csv nào? Nếu ta mở file *.csv Notepad++ thấy Hình Như vậy, thực chất dịng cách dấu phẩy Ví dụ, ta ghi dịng thứ câu lệnh: fprintf(f, "Random, 1000, 0, 0, 0,