C. Mở rộn g: Danh sách liên kết đơn
CHƯƠNG 3: ĐÁNH GIÁ CHUNG 3.1 So sánh tốc độ của các thuật toán sắp xếp
3.1. So sánh tốc độ của các thuật toán sắp xếp
Nhóm em xin đưa ra cái nhìn tổng quan đánh giá về tốc độ của các thuật toán sắp xếp như sau.
Để có được ý tưởng về việc chúng thực hiện nhanh như thế nào, tạo ra một danh sách 5000 số từ 0 đến 1000. Sau đó tìm xem sẽ mất bao lâu để mỗi thuật toán hoàn thành. Điều này được lặp lại 10 lần để chúng ta có thể thiết lập một mô hình hiệu suất đáng tin cậy hơn.
Bạn sẽ nhận được các giá trị khác nhau nếu bạn tự thiết lập thử nghiệm, nhưng các mẫu được quan sát phải giống hoặc tương tự nhau. Bubble Sort là trình diễn chậm nhất trong tất cả các thuật toán. Mặc dù nó hữu ích như là một giới thiệu về sắp xếp và thuật toán, nó không phù hợp để sử dụng thực tế.
Nhận thấy rằng Quick Sort rất nhanh, nhanh gần gấp đôi so với Merge sort và nó sẽ không cần nhiều không gian để chạy. Hãy nhớ rằng phân vùng của chúng ta dựa trên yếu tố giữa của danh sách, các phân vùng khác nhau có thể có kết quả khác nhau.
Vì Insertion Sort thực hiện so sánh ít hơn nhiều so với Selection Sort, việc triển khai thường nhanh hơn nhưng trong các lần chạy này, Selection Sort nhanh hơn một chút.
Insertion Sort thực hiện nhiều hoán đổi hơn so với Selection Sort. Nếu các giá trị hoán đổi chiếm nhiều thời gian hơn so với so sánh các giá trị, thì kết quả "trái ngược" này sẽ hợp lý.
Hãy chú ý đến môi trường khi chọn thuật toán sắp xếp phù hợp nhất dành cho bạn, vì nó sẽ ảnh hưởng đến hiệu suất.
Bảng 1: Bả ng thể hiệ n tố c độ củ a mộ t số thuậ t toán sắ p xếp
3.2. Tạm kết và đánh giá hiệu quả nhóm
Môn c ấu trúc d ữ li ệu và gi ải thuật, những thuật toán mới, những phần mở r
ộng đ ối v ới m ột l ớp nói riêng, một khoa không chuyên về kỹ thuật nói chung rất khó. Nhưng không vì thế mà làm nản lòng của những người sinh viên năng
động trong th ời kì công ngh ệ đ ổi m ới liên t ục . Nhóm làm việc không ngừng tìm hiểu, trao đổi và hợp tác mà đào sâu những phần mở rộng, những ngôn ngữ khác nhau và tiếp cận nhiều kiến thức mới.
3.3. TÀI LIỆU THAM KHẢOCác thuật toán : Các thuật toán :
[1]Giáo trình Cấ u trúc dữ liệ u & Giả i thuật (Năm xuất bản 2007 tái bản lần 9) của tác giả: Đỗ Xuân Lôi
[2] https://docs.python.org/3/library/bisect.html
[3] Slide của cô Giang Huyền
[4] Algorithms in C, 3rd Edition – Robert Sedgewick
--- Danh sách liên kết đơn : [1]https://www.youtube.com/channel/UCSSMahX759Ppn7diWOpo7Yw (Thien Tam Nguyen) [2] https://codelearn.io/learning/data-structure-and-algorithms/805177 [3]https://topdev.vn/blog/danh-sach-lien-ket-don-trong-c/#xoa-o-sau-node- bat-ky [4]https://khiemle.dev/con-tro-va-cap-phat-dong-trong-cpp [5] https://nguyenvanhieu.vn/tham-chieu-va-tham-tri-trong-c/
[6] Sach Cau truc du lieu va Giai thuat - Le Minh Hoang
[7] Apprenez à programmer en C (Đã được biên dịch)
[8] https://cpp.daynhauhoc.com/8/0-con-tr/
[9] https://stackoverflow.com/questions/641715-8/c-how-to-free-nodes-in-the- linked-
list