Nhận xét kết quả Lý thuyết – Thực nghiệm:

Một phần của tài liệu Báo cáo BTL PTTK Giải Thuật Sorting and Searching (Trang 39)

+ Với dữ liệu càng lớn thì kết quả thực nghiệm cho ta được kết quả ưng ý và trùng khớp nhất với cơ sở lý thuyết.

+ Tùy vào loại dữ liệu thì các giải thuật sẽ cho ta kết quả khác nhau. Không phải lúc nào giải thuật này cũng nhanh hơn giải thuật kia.

+ Trước hết ta nói về tốc độ thực thi của các giải thuật về dữ liệu input chung. Thì theo đó ta thấy Radix sort có thời gian thực thi ít nhất, nhanh nhất nhưng nó tốn rất nhiều bộ nhớ để xử lý, thay vào đó ta thấy Quick sort với pivot là Mid thì tốc độ xử lý cũng không kém nên ta có thể bỏ qua cái Radix sort để rút ra Kết luận rằng: Quick sort (Mid) là giải thuật được chờ đợi.

Trang 40 0 10000000 20000000 30000000 40000000 50000000 60000000 70000000 80000000 90000000 100000000 0 1000 10000 100000 Chart Sorting

Trang 41

Phần 2: Searching I. Cở sở lý thuyết về Brute – Force:

Trong khoa học máy tính , Brute-Force Search hoặc tìm kiếm đầy đủ , còn được gọi là tạo ra và thử nghiệm, là một kỹ thuật giải quyết vấn đề rất chung chung mà bao gồm liệt kê hệ thống tất cả các ứng cử viên có thể cho các giải pháp và kiểm tra xem mỗi ứng cử viên đáp ứng tuyên bố của vấn đề.

Một thuật toán brute-force để tìm các ước của một số tự nhiên n sẽ liệt kê tất cả các số nguyên từ 1 đến căn bậc hai của n, và kiểm tra xem mỗi trong số họ chia n mà không còn lại. Một cách tiếp cận brute-force cho tám hoàng đố sẽ kiểm tra tất cả các thỏa thuận có thể có của 8 miếng trên bàn cờ 64 mét vuông, và với mỗi sự sắp xếp, kiểm tra xem mỗi (nữ hoàng) mảnh có thể tấn công bất kỳ khác.

Trong khi tìm kiếm brute-force là đơn giản để thực hiện, và sẽ luôn luôn tìm thấy một giải pháp nếu nó tồn tại, chi phí của nó là tỷ lệ thuận với số lượng các giải pháp ứng cử viên - mà trong nhiều vấn đề thực tế có xu hướng phát triển rất nhanh chóng như kích thước của vấn đề tăng. Vì vậy, Brute-Force Search thường được sử dụng khi kích thước vấn đề hạn chế, hoặc khi có những vấn đề cụ thể chẩn đoán có thể được sử dụng để giảm bộ các giải pháp ứng cử viên có thể quản lý. Phương pháp này cũng được sử dụng khi thực hiện đơn giản là quan trọng hơn tốc độ.

Đây là trường hợp, ví dụ, trong các ứng dụng quan trọng mà bất kỳ sai sót trong các thuật toán sẽ có hậu quả rất nghiêm trọng; hay khi sử dụng một máy tính để chứng minh một định lý toán học . Brute-force tìm kiếm cũng là hữu ích như là một phương pháp cơ bản khi điểm chuẩn các thuật toán hoặc khác metaheuristics . Thật vậy, brute-force tìm kiếm có thể được xem như là metaheuristic đơn giản nhất. Tìm kiếm sức mạnh vũ phu không nên nhầm lẫn với quay lui , nơi tập hợp lớn của các giải pháp có thể được loại bỏ mà không được liệt kê một cách rõ ràng (như trong sách giáo khoa giải pháp máy tính để các vấn đề tám hoàng trên). Các phương pháp brute-force cho việc tìm kiếm một mục trong bảng - cụ thể là, rà soát tất cả các mục của sau này, tuần tự - được gọi là tìm kiếm tuyến tính.

Mã giả cho thuật tìm kiếm:

ALGORITHM: BF_Search(A[0..n-1], K)

//Tìm xem tồn tại K trong A hay không bằng giải thuật tìm kiếm tuần tự //Input: mảng A[0..n-1]; giá trị K

//Output: vị trí phần tử K đầu tiên được tìm thấy, hoặc -1 nếu không tìm thấy K 1. i = 0

Trang 42

2. while i < n and A[i] ≠ K do 3. i = i + 1

4. if(i < n) //Nếu i < n nghĩa la tìm thấy K trong mảng A 5. return i //Trả về vị trí đầu tiên tìm được

6. else //Ngược lại, đã so sánh đến cuối mảng 7. return -1 //vẫn chưa tìm thấy, trả về -1 8. end BF_Search

Phân tích độ phức tạp: BigO: O(n) II. Thuật toán tìm kiếm Chia để trị:

Khái niệm sơ bộ: Thuật toán này dùng 1 số ở vị trí mid (chính giữa), so sánh với key chúng ta cần tìm, nếu key lớn hơn mid thì số cần tìm nó nằm bên phải, và ngược lại, cứ như thế ta sẽ tìm được vị trí của key có hay không trong mảng.

Phân tích độ phức tạp: BigO: O(logn)

Kết luận: Từ khái niệm BigO ta có thể kết luận thuật toán tìm kiếm chia để trị tốt hơn Brute-Force. Nhưng dữ liệu đầu vào phải là một mảng đã được sắp xếp tăng không giảm.

Trang 43

III. Thực nghiệm:

Cài đặt thuật toán Brute-force:

Trang 44

Cài đặt thuật toán:

Thực tế Chia để trị:

Trang 45

Tài Liệu Tham Khảo

https://vi.wikipedia.org/wiki/Trang_Ch%C3%ADnh (adsbygoogle = window.adsbygoogle || []).push({});

http://bayanbox.ir/view/4177858657730907268/introduction-to-algorithms-3rd-edition.pdf

---//---THE END---//---

Cảm ơn Thầy/Cô đã xem qua bài của em!

Bài còn nhiều thiếu sót mong Thầy/Cô xem xét nhắc nhở để em bổ sung, hoàn thiện bài được tốt hơn.

Một phần của tài liệu Báo cáo BTL PTTK Giải Thuật Sorting and Searching (Trang 39)