Do an giai thuat sap xep

39 495 2
Do an giai thuat sap xep

Đ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

Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp TRƯỜNG ĐẠI HỌC ĐỒNG THÁP KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CÔNG NGHỆ TIN HỌC Đề tài : Cài đặt các giải thuật sắp xếp Sinh viên thực hiện: Huỳnh Thị Minh Hằng Lớp: CĐTin08A Giáo viên hướng dẫn: Nguyễn Thị Mỹ Dung Đồng Tháp, 2009 Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 1 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp LỜI CẢM ƠN Trước hết em xin chân thành cảm ơn các thầy cô giáo khoa Công Nghệ Thông Tin trường Đại học Đồng Tháp đã trang bị cho em những kiến thức cơ bản cần thiết trong thời gian qua để em có thể thực hiện tốt đồ án này. Em xin chân thành cảm ơn cô Nguyễn Thị Mỹ Dung đã tận tình giúp đỡ và hướng dẫn em hoàn tất đồ án này. Ngoài ra tôi cũng xin cảm ơn tất cả bạn bè đã giúp đỡ tôi trong suốt quá trình thực hiện đồ án. Mặc dù đã rất cố gắng, nhưng trong khoảng thời gian cho phép cũng như những hạn chế về kiến thức nên cuốn đồ án này của em không thể tránh khỏi những thiếu sót. Chính vì vậy, em rất mong nhận được sự góp ý của các thầy cô giáo cũng như bạn bè có quan tâm đến lĩnh vực được trình bày trong cuốn đồ án này để em tích lũy thêm những kinh nghiệm cho mình nhằm phát huy những kiến thức được học để ứng dụng trong công tác sau này Một lần nữa em xin chân thành cảm ơn !. Sinh Viên Thực Hiện Huỳnh Thị Minh Hằng Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 2 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp Mục lục TRƯỜNG ĐẠI HỌC ĐỒNG THÁP 1 ĐỒ ÁN CÔNG NGHỆ TIN HỌC 1 Đề tài : Cài đặt các giải thuật sắp xếp 1 Mục lục 3 PHẦN MỞ ĐẦU 4 1. Lý do chọn Đồ Án 4 2. Mục tiêu và nhiệm vụ 5 Đồ án này trong giới hạn kiến thức và thời gian, em chỉ tập trung nghiên cứu các nội dung cơ bản sau 5 1.1Thuật toán (algorithm) 5 1.1.1.Khái niệm thuật toán 5 1.1.2.Các đặc trưng của thuật toán 5 Khái niệm giải thuật 5 Các đặc trưng của giải thuật 5 Một số giải thuật cơ bản 5 CHƯƠNG 2 : ỨNG DỤNG THUẬT TOÁN SẮP XẾP 5 3.1 CÁC THUẬT TOÁN SẮP XẾP ĐƠN GIẢN 5 3.1.1 Sắp xếp lựa chọn 5 3.1.2 Sắp xếp xen vào 5 3.1.3 Sắp xếp nổi bọt 5 Chương 1. TỔNG QUAN VỀ GIẢI THUẬT 6 1.1Thuật toán 6 1.1.1.Khái niệm thuật toán 6 1.1.2.Các đặc trưng của thuật toán 6 1.2GIẢI THUẬT 7 1.2.1. Khái niệm giải thuật 7 1.2.2. Các đặc trưng của giải thuật 8 1.2.3. Ngôn ngữ biểu diễn giải thuật 8 1.2.3.1. Ngôn ngữ tự nhiên 8 1.2.3.2. Ngôn ngữ sơ đồ (Lưu đồ) 8 1.3. Một số giải thuật cơ bản 11 1.3.1.Các cấu trúc suy luận cơ bản của giải thuật 12 1.3.1.1.Tuần tự (Sequential): 12 1.3.1.2.Cấu trúc lựa chọn (Selection) 12 1.3.1.3.Cấu trúc lặp (Repeating) 13 13 CHƯƠNG 2 : ỨNG DỤNG THUẬT TOÁN SẮP XẾP 13 2.2 CÁC THUẬT TOÁN SẮP XẾP CƠ BẢN 15 2.2.1 Phương pháp chọn trực tiếp 15 2.2.3 Phương pháp Nổi Bọt ( Bubble Sort ) 21 Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 3 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp PHỤ LỤC DEMO KẾT LUẬN TÀI LIỆU THAM KHẢO PHẦN MỞ ĐẦU 1. Lý do chọn Đồ Án Ngày nay, với sự phát triển vượt bậc của khoa học kỹ thuật. Công nghệ thông tin là một lĩnh vực nhiều ứng dụng thiết thực nhất trong mọi lĩnh vực của cuộc sống và xã hội chúng ta, đặc biệt nó là công cụ hỗ trợ đắc lực không thể thiếu trong công tác tổ chức, quản lý. Dễ dàng thấy rằng cơ sở dữ liệu là một trong ứng dụng quan trọng của công tác tin học hoá với những ứng dụng hữu ích cho mọi lĩnh vực của cuộc sống. Nhờ vào công tác tin học hoá mà công tác quản lý, tổ chức sắp xếp dữ liệu tỏ ra có hiệu quả, nhanh chóng, chính xác, lưu trữ gọn, bảo mật cao và dễ dàng. Chính vì lẽ đó mà cơ sở dữ liệu như là một giải pháp hữu hiệu nhất cho mọi cơ quan, tổ chức có thể làm việc 1 cách khoa học và đạt năng suất cao. Trong 2 thập niên qua, với sự phát triển không ngừng của ngành công nghệ thông tin, các ứng dụng của công nghệ thông tin ngày càng đi sâu vào các lĩnh vực của cuộc sống. nó giữ một vai trò cực kỳ quan trọng, góp phần giúp nhà quản lý thực hiện chức năng quản lý một cách khoa học, chính xác và hiệu quả. Sự phát triển của các công nghệ phận mềm, trên các lĩnh vực như đồ họa, ứng dụng văn phòng, tổ chức dữ liệu, thiết kế web .v.v Trong đó cấu trúc dữ liệu và giải thuật là một bộ môn giúp cho nhà lập trình xây dựng ý tưởng và thiết kế nên những phần mềm ứng dụng quan trọng, mà các giải thuật sắp xếp là một trong những ứng dụng quan trọng của bộ môn cấu trúc dữ liệu và giải thuật, nó giúp cho chúng ta có thể tổ chức sắp xếp dữ liệu theo nhiều phương án khác nhau, thuận tiện cho việc truy xuất, kiểm tra, đối chiếu dữ liệu, thế nên việc nghiên cứu các giải thuật sắp xếp để đưa vào ứng dụng trong cuộc sống là một nhu cầu cấp thiết mà người lập trình phải tìm hiểu và nghiên cứu. Chính vì thế mà em chọn đề tài “ Cài đặt các giải thuật sắp xếp” làm đồ án của mình và dùng ngôn ngữ hỗ trợ cài đặt là Visual Basic để thiết kế bản Demo. Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 4 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp 2. Mục tiêu và nhiệm vụ Đồ án này trong giới hạn kiến thức và thời gian, em chỉ tập trung nghiên cứu các nội dung cơ bản sau • Nghiên cứu tổng quan về giải thuật. • Nghiên cứu các thuật toán sắp xếp • Thiết kế các giải thuật sắp xếp. • Hướng đến các kỹ thuật lập trình với mã nguồn mở và ngôn ngữ lập trình C# • Áp dụng kết quả nghiên cứu làm một demo cài đặt các giải thật sắp xếp 1. Cấu trúc Đồ Án Chương 1. TỔNG QUAN VỀ GIẢI THUẬT 1.1 Thuật toán (algorithm) 1.1.1. Khái niệm thuật toán 1.1.2. Các đặc trưng của thuật toán Khái niệm giải thuật Các đặc trưng của giải thuật Một số giải thuật cơ bản CHƯƠNG 2 : ỨNG DỤNG THUẬT TOÁN SẮP XẾP 3.1 CÁC THUẬT TOÁN SẮP XẾP ĐƠN GIẢN 3.1.1 Sắp xếp lựa chọn 3.1.2 Sắp xếp xen vào 3.1.3 Sắp xếp nổi bọt CHƯƠNG 3 : PHỤ LỤC BẢN DEMO KẾT LUẬN Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 5 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp Chương 1. TỔNG QUAN VỀ GIẢI THUẬT 1.1 Thuật toán 1.1.1. Khái niệm thuật toán Thuật ngữ “algorithm” (thuật toán hoặc còn gọi là giải thuật) được gọi theo tên nhà toán học Ả rập thế kỷ IX al-Khowarizmi, người đã viết cuốn sách về các chữ số Hindu – cơ sở của kí hiệu số thập phân hiện đại (xem [4], trang 118). Xuất xứ ban đầu là từ algorism, được dùng để chỉ các quy tắc thực hiện các phép tính số học trên các số thập phân. Sau đó, vào thế kỷ XVIII algorism biến thành algorithm. Với sự quan tâm ngày càng tăng đối với máy tính, khái niệm thuật toán đã được cho một ý nghĩa chung hơn, bao hàm cả các thủ tục xác định để giải các bài toán, chứ không phải chỉ là thủ tục để thực hiện các phép tính số học. Thuật toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy các thao tác ấy, từ Input của bài toán ta nhận được Output cần tìm. Cũng có thế xem thuật toán như một công cụ để giải quyết một bài toán cụ thể. Phát biểu bài toán sẽ chỉ định tổng quát mối quan hệ Input/Output cần thiết. Thuật toán mô tả một thủ tục tính toán cụ thể để đạt được mối quan hệ 1.1.2. Các đặc trưng của thuật toán Các thuật toán có một số tính chất chung, đó là: • Đầu vào (Input): Một thuật toán có các giá trị đầu vào từ một tập xác định. • Đầu ra (Output): Từ mỗi tập giá trị đầu vào, thuật toán sẽ tạo ra các giá trị đầu ra. Các giá trị đầu ra chính là nghiệm của bài toán. Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 6 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp • Tính xác định: Các bước của thuật toán phải được xác định một cách chính xác. • Tính đúng đắn: Một thuật toán phải cho các giá trị đầu ra đúng đối với mỗi tập giá trị đầu vào. • Tính hữu hạn: Một thuật toán phải tạo ra các giá trị đầu ra sau một số hữu hạn (có thể rất lớn) các bước thực hiện đối với mỗi tập đầu vào. • Tính hiệu quả: Mỗi bước của thuật toán phải thực hiện được một cách chính xác và trong một khoảng thời gian chấp nhận được. • Tính tổng quát: Thuật toán cần phải áp dụng được cho mọi tập dữ liệu đầu vào của bài toán, chứ không phải chỉ cho một tập đặc biệt các giá trị đầu vào. 1.2 GIẢI THUẬT 1.2.1. Khái niệm giải thuật Giải thuật là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác định một dãy các thao tác trên những dữ liệu vào sao cho sau một số hữu hạn bước thực hiện các thao tác đó ta thu được kết quả của bài toán. Ví dụ 1: Giả sử có hai bình A và B đựng hai loại chất lỏng khác nhau, chẳng hạn bình A đựng rượu, bình B đựng nước mắm. Giải thuật để hoán đổi (swap) chất lỏng đựng trong hai bình đó là: • Yêu cầu phải có thêm một bình thứ ba gọi là bình C. • Bước 1: Đổ rượu từ bình A sang bình C. • Bước 2: Đổ nước mắm từ bình B sang bình A. • Bước 3: Đổ rượu từ bình C sang bình B. Ví dụ 2: Một trong những giải thuật tìm ước chung lớn nhất của hai số a và b là: • Bước 1: Nhập vào hai số a và b. • Bước 2: So sánh 2 số a,b chọn số nhỏ nhất gán cho UCLN. • Bước 3: Nếu một trong hai số a hoặc b không chia hết cho UCLN thì thực hiện bước 4, ngược lại (cả a và b đều chia hết cho UCLN) thì thực hiện bước 5. • Bước 4: Giảm UCLN một đơn vị và quay lại bước 3 • Bước 5: In UCLN - Kết thúc. Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 7 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp 1.2.2. Các đặc trưng của giải thuật • Tính kết thúc: Giải thuật phải dừng sau một số hữu hạn bước. • Tính xác định: Các thao tác máy tính phải thực hiện được và các máy tính khác nhau thực hiện cùng một bước của cùng một giải thuật phải cho cùng một kết quả. • Tính phổ dụng: Giải thuật phải "vét' hết các trường hợp và áp dụng cho một loạt bài toán cùng loại. • Tính hiệu quả: Một giải thuật được đánh giá là tốt nếu nó đạt hai tiêu chuẩn sau: - Thực hiện nhanh, tốn ít thời gian. - Tiêu phí ít tài nguyên của máy, chẳng hạn tốn ít bộ nhớ. Giải thuật tìm UCLN nêu trên đạt tính kết thúc bởi vì qua mỗi lần thực hiện bước 4 thì UCLN sẽ giảm đi một đơn vị cho nên trong trường hợp xấu nhất thì UCLN=1, giải thuật phải dừng. Các thao tác trình bày trong các bước, máy tính đều có thể thực hiện được nên nó có tính xác định. Giải thuật này cũng đạt tính phổ dụng vì nó được dùng để tìm UCLN cho hai số nguyeên dương a và b bất kỳ. Tuy nhiên tính hiệu quả của giải thuật có thể chưa cao; cụ thể là thời gian chạy máy có thể còn tốn nhiều hơn một số giải thuật khác mà chúng ta sẽ có dịp trở lại trong phần lập trình C. 1.2.3. Ngôn ngữ biểu diễn giải thuật Để biểu diễn giải thuật, cần phải có một tập hợp các ký hiệu dùng để biểu diễn, mỗi ký hiệu biểu diễn cho một hành động nào đó. Tập hợp các ký hiệu đó lại tạo thành ngôn ngữ biểu diễn giải thuật. 1.2.3.1. Ngôn ngữ tự nhiên Ngôn ngữ tự nhiên là ngôn ngữ của chúng ta đang sử dụng, chúng ta có thể sử dụng ngôn ngữ tự nhiên để mô tả giải thuật giống như các ví dụ ở trên. Ví dụ: Ta có giải thuật giải phương trình bậc nhất dạng ax+b=0 như sau: • Bước 1: Nhận giá trị của các tham số a, b • Bước 2: Xét giá trị của a xem có bằng 0 hay không? Nếu a=0 thì làm bước 3, nếu a khác không thì làm bước 4. • Bước 3: (a bằng 0) Nếu b bằng 0 thì ta kết luận phương trình vô số nghiệm, nếu b khác 0 thì ta kết luận phương trình vô nghiệm. • Bước 4: ( a khác 0) Ta kết luận phương trình có nghiệm x=-b/a 1.2.3.2. Ngôn ngữ sơ đồ (Lưu đồ) Lưu đồ hay sơ đồ khối là một công cụ trực quan để diễn đạt các thuật toán. Biểu diễn thuật toán bằng lưu đồ sẽ giúp người đọc theo dõi được sự phân cấp các trường hợp và quá trình xử lý của thuật toán. Phương pháp lưu đồ thường Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 8 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp được dùng trong những thuật toán có tính rắc rối, khó theo dõi được quá trình xử lý. Ðể biểu diễn thuật toán theo sơ đồ khối, ta phải phân biệt hai loại thao tác. Một thao tác là thao tác chọn lựa dựa theo một điều kiện nào đó. Chẳng hạn : thao tác"nếu a = b thì thực hiện thao tác B2, ngược lại thực hiện B4" là thao tác chọn lựa. Các thao tác còn lại không thuộc loại chọn lựa được xếp vào loại hành động. Chẳng hạn, "Chọn một hộp bất kỳ và để lên dĩa cân còn trống." là một thao tác thuộc loại hành động. Thao tác chọn lựa (decision) Thao tác chọn lựa được biểu diễn bằng một hình thoi, bên trong chứa biểu thức điều kiện. Thao tác xử lý (process) Thao tác xử lý được biểu diễn bằng một hình chữ nhật, bên trong chứa nội dung xử lý. Ðường đi (route) Khi dùng ngôn ngữ tự nhiên, ta mặc định hiểu rằng quá trình thực hiện sẽ lần lượt đi từ bước trước đến bước sau (trừ khi có yêu cầu nhảy sang bước khác). Trong ngôn ngữ lưu đồ, do thể hiện các bước bằng hình vẽ và có thể đặt các hình vẽ này ở vị trí bất kỳ nên ta phải có phương pháp để thể hiện trình tự thực hiện các thao tác. Hai bước kế tiếp nhau được nối bằng một cung, trên cung có mũi tên để chỉ hướng thực hiện. Chẳng hạn trong hình dưới, trình tự thực hiện sẽ là B1, B2, B3. ừ thao tác chọn lựa có thể có đến hai hướng đi, một hướng ứng với điều kiện thỏa và một hướng ứng với điều kiện không thỏa. Do vậy, ta dùng hai cung xuất phát từ các đỉnh hình thoi, trên mỗi cung có ký hiệu Ð/Ðúng/Y/Yes Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 9 Đồ Án CTDL và GT Cài đặt các thuật toán sắp xếp để chỉ hướng đi ứng với điều kiện thỏa và ký hiệu S/Sai/N/No để chỉ hướng đi ứng với điều kiện không thỏa. Ðiểm cuối (terminator) Ðiểm cuối là điểm khởi đầu và kết thúc của thuật toán, được biểu diễn bằng hình ovan, bên trong có ghi chữ bắt đầu/start/begin hoặc kết thúc/end. Ðiểm cuối chỉ có cung đi ra (điểm khởi đầu) hoặc cung đi vào (điểm kết thúc). Xem lưu đồ thuật toán giải phương trình bậc hai ở trên để thấy cách sử dụng của điểm cuối. Sinh viên thực hiện: Huỳnh Thị Minh Hằng Trang 10 [...]... setbkcolor(0); for(int i=1;i . nối. Ðiểm nối sang trang (off-page connector) Tương tự như điểm nối, nhưng điểm nối sang trang được dùng khi lưu đồ quá lớn, phải vẽ trên nhiều trang. Bên trong điểm nối sang trang ta cũng đặt. trình biến đổi một danh sách các đối tượng thành một danh sách thoả mãn một thứ tự xác định nào đó. Sắp xếp đóng vai trò quan trọng trong tìm kiếm dữ liệu. Chẳng hạn, nếu danh sách đã được sắp. nhập vào n giá trị a1, a2,… ,an. Hãy tìm và in ra giá trị lớn nhất trong n số a1, a2, …, an. Để giải quyết bài toán trên, chúng ta áp dụng phương pháp “thử và sửa”. Ban đầu giả sử a1 là số lớn

Ngày đăng: 30/06/2014, 21:00

Mục lục

  • TRƯỜNG ĐẠI HỌC ĐỒNG THÁP

  • ĐỒ ÁN CÔNG NGHỆ TIN HỌC

  • Đề tài : Cài đặt các giải thuật sắp xếp

  • Mục lục

  • PHẦN MỞ ĐẦU

    • 1. Lý do chọn Đồ Án

    • 2. Mục tiêu và nhiệm vụ

    • Đồ án này trong giới hạn kiến thức và thời gian, em chỉ tập trung nghiên cứu các nội dung cơ bản sau

    • 1.1 Thuật toán (algorithm)

      • 1.1.1. Khái niệm thuật toán

      • 1.1.2. Các đặc trưng của thuật toán

      • Khái niệm giải thuật

      • Các đặc trưng của giải thuật

      • Một số giải thuật cơ bản

      • CHƯƠNG 2 : ỨNG DỤNG THUẬT TOÁN SẮP XẾP

        • 3.1 CÁC THUẬT TOÁN SẮP XẾP ĐƠN GIẢN

          • 3.1.1 Sắp xếp lựa chọn

          • 3.1.2 Sắp xếp xen vào

          • 3.1.3 Sắp xếp nổi bọt

          • Chương 1. TỔNG QUAN VỀ GIẢI THUẬT

            • 1.1 Thuật toán

              • 1.1.1. Khái niệm thuật toán

              • 1.1.2. Các đặc trưng của thuật toán

              • 1.2 GIẢI THUẬT

              • 1.2.1. Khái niệm giải thuật

              • 1.2.2. Các đặc trưng của giải thuật

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

Tài liệu liên quan