TIỂU LUẬN MÔN THUẬT TOÁN NÂNG CAO Thuật toán sắp xếp Quicksort

18 560 3
TIỂU LUẬN MÔN THUẬT TOÁN NÂNG CAO Thuật toán sắp xếp Quicksort

Đ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

TRƯỜNG ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐH BÁCH KHOA ĐÀ NẴNG TIỂU LUẬN MÔN THUẬT TOÁN NÂNG CAO Giảng viên hướng dẫn: Nguyễn Thanh Bình Học viên : Võ Phi Thanh Hoàng Công Tiến Lê Công Vượng Nguyễn Trần Sỹ Nguyễn Thị Hà Phương Lớp : Cao học KHMT K24 Đồng Hới, 12/2012 Tiểu luận thuật toán nâng cao LỜI MỞ ĐẦU Hiện nay, trong tất cả các lĩnh vực kinh tế, văn hóa, nông nghiệp… công nghệ thông tin thực sự gắn liền và góp phần làm tăng hiệu quả của các lĩnh vực đó, cụ thể đã có nhiều phần mềm phục vụ trong văn hóa nghệ thuật giải trí như phần mềm thống kê tin nhắn bình chọn, phần mềm xử lý hình ảnh, âm thanh; trong nông nghiệp thì người ta chế tạo ra các phương tiện, máy móc phục vụ cho mùa vụ…; trong trí tuệ nhân tạo thì có robot, máy móc tự động hóa… Vậy để có được những sản phẩm đó phải qua các bước khác nhau trong đó quan trọng nhất là ý tưởng, hay là cách thức để cho sản phẩm đó hoạt động Tóm lại là thuật toán Trong tiểu luận của chúng tôi nghiên cứu về một số thuật toán nâng cao nhằm giải quyết một vấn đề trong một số bước hữu hạn hoặc nhằm cung cấp một kết quả từ một tập hợp của các dữ kiện đưa vào Một số thuật toán như sau: - Chứng minh sự đúng đắn - Thuật toán sắp xếp Quicksort - Thuật toán chia để trị - Thuật toán quy hoạch động Chúng em xin chân thành cảm ơn thầy Nguyễn Thanh Bình đã hướng dẫn để tiểu luận của chúng em hoàn thành tốt hơn Tiểu luận này còn nhiều thiếu sót, rất mong quý thầy cô và các bạn đóng góp ý kiến Chúng tôi xin chân thành cảm ơn Thực hiện: Nhóm 1 1 Tiểu luận thuật toán nâng cao MỤC LỤC LỜI MỞ ĐẦU 1 MỤC LỤC 2 CHƯƠNG 1 GIỚI THIỆU VỀ THUẬT TOÁN NÂNG CAO 3 1 1 Khái niệm thuật toán 3 1.2 Các tính chất của thuật toán 3 1.3 Đặc tả thuật toán 4 1.4 Phân tích và đánh giá các thuật toán .4 CHƯƠNG 2 MỘT SỐ THUẬT TOÁN 5 2.1 Chứng minh sự đúng đắn: .5 2.1.1 Tìm bất biến vòng lặp I 5 2.1.2 Tìm hàm dừng T(n) 6 2.2 Thuật toán chia để trị .6 2.2.1 Chứng minh có thể nhân hai đa thức (ax+b) và (cx+d) chỉ với 3 phép nhân 6 2.2.2 Chứng minh hai số nguyên được biểu diễn n bit có thể được nhân bởi thuật toán có độ phức tạp O(nlog3) 8 2.3 Tính độ phức tạp của thuật toán Quicksort .9 2.3.1 Phân tích độ phức tạp: trường hợp tốt nhất: .9 2.3.2 Phân tích độ phức tạp: trường hợp xấu nhất : 9 2.3.3 Độ phức tạp trường hợp trung bình của Quicksort : 10 2.4 Thuật toán quy hoạch động 14 2.4.1 Bài toán 14 2.4.2 Thuật toán đệ quy tính hệ thức truy hồi Function Time(i,t1,t2); 15 2.4.3 Đánh giá độ phức tạp thuật toán đệ quy tính hệ thức truy hồi .15 2.4.4 Thuật toán quy hoạch động 15 2.4.5 Đánh giá độ phức tạp của thuật toán quy hoạch động 16 TÀI LIỆU THAM KHẢO 17 Thực hiện: Nhóm 1 2 Tiểu luận thuật toán nâng cao CHƯƠNG 1 GIỚI THIỆU VỀ THUẬT TOÁN NÂNG CAO 1 1 Khái niệm thuật toán Thuật toán là một dãy xác định các thao tác cơ bản áp dụng trên dữ liệu vào nhằm đạt được giải pháp cho một vấn đề Hai vấn đề: Tìm một phương pháp giải quyết vấn đề - Giải pháp cho ax2+bx+c=0: rõ ràng và xác định - Giải pháp cho ax5+bx4+cx3+dx2+ex=0: Không có giải pháp tổng quát Tìm một giải pháp hiệu quả Phân biệt giải thuật và chương trình: Chương trình là cài đặt thuật toán bằng một ngôn ngữ lập trình Thuật toán: Thủ tục tính toán nhận tập các dữ liệu vào và tạo các dữ liệu ra Thuật toán được gọi là đúng đắn nếu thuật toán dừng và cho kết quả đúng với mọi dữ liệu vào Thuật toán hằng ngày trong cuộc sống đơn giản chỉ là những công việc với các bước tuần tự như nấu cơm, học bài… Thuật toán trong toán học/tin học thì như là nhân hai ma trận, tính tích phân… 1.2 Các tính chất của thuật toán o Tính tổng quát: Thuật toán phải áp dụng cho tất cả các mẫu dữ liệu vào chứ không chỉ là một mẫu dữ liệu vào cụ thể Ví dụ: Sắp xếp giảm dần một dãy các giá trị Dữ liệu vào: 6 8 4 5 2 Dữ liệu ra: 8 6 5 4 2 Phương pháp: So sánh hai phần tử liên tiếp nhau từ trái qua phải, nếu không đúng thứ tự thì hoán đổi vị trí chúng B1: 6  8 4 5 2 B2: 8 6  4 5 2 B3: 8 6 4  5 2 B4: 8 6 5 4 2 Dãy đã được sắp xếp nhưng thuật toán chưa tổng quát o Tính hữu hạn Thuật toán phải dừng sau một bước xác định Ví dụ: nhập n While (n0) n=n-2 Endwhile Thuật toán này trong trường hợp n lẻ thì sẽ không dừng mà chạy vô hạn o Tính không nhập nhằng Thực hiện: Nhóm 1 3 Tiểu luận thuật toán nâng cao Các thao tác trong thuật toán phải được đặc tả chặt chẽ Ở mỗi bơpcs thực thi thì bước tiếp theo phải được xác định rõ ràng Ví dụ: x=0 aa: Tăng x lên 1 hoặc giảm x xuống 1 If (x >=-2) and (x

Ngày đăng: 23/03/2015, 11:19

Từ khóa liên quan

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

Tài liệu liên quan