Giải thuật và cấu trúc dữ liệu

6 370 0
Giải thuật và cấu trúc dữ liệu

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giải thuật cấu trúc liệu~ Giải thuật cấu trúc liệu~ Bởi: Khoa CNTT ĐHSP KT Hưng Yên GIẢI THUẬT Khi viết chương trình máy tính, ta thường cài đặt phương pháp nghĩ trước để giải vấn đề Phương pháp thường độc lập với máy tính cụ thể dùng để cài đặt: thích hợp cho nhiều máy tính Trong trường hợp nào, thìphương pháp, thân chương trình máy tính nghiên cứu để học cách làm để công vào toán từ “Giải thuật” hay “Thuật toán” dùng khoa học máy tính để mô tả phương pháp giải toán thích hợp cài đặt chương trình máy tính Giải thuật chúng đối tượng nghiên cứu trung tâm hầu hết lĩnh vực Tin học Các chương trình máy tính thường tối ưu, không cần thuật toán tối ưu, trừ thuật toán dùng lại nhiều lần Nếu không cần cài đặt đơn giản cẩn thận đủ để ta tin tưởng hoạt động tốt chạy chậm đến mười lần phiên tốt, điều có nghĩa chạy chậm vài giây, ta chọn thiết kế cài đặt tối ưu phức tạp từ đầu tốn nhiều phút, nhiều giờ… Do ta xem xét cài đặt hợp lý đơn giản thuật toán tốt Thông thường để giải toán ta có lựa chọn nhiều thuật toán khác, việc lựa chọn thuật toán tốt vấn đề tương đối khó khăn phức tạp, thường cần đến trình phân tích tinh vi tin học Khái niệm Giải thuật có từ lâu nhà toán học người Arập phát ngôn, thuật toán tiếng có từ thời cổ Hylạp thuật toán Euclid (thuật toán tìm ước số chung lớn số) Phương pháp cộng, nhân, chia… hai số giải thuật… Trong Tin học khái niệm giải thuật trình bày sau: 1/6 Giải thuật cấu trúc liệu~ Giải thuật câu lệnh (Statements) chặt chẽ rõ ràng xác định trình tự thao tác số đối tượng cho sau số hữu hạn bước thực ta đạt kết mong muốn (Thuật toán dãy hữu hạn bước, bước mô tả xác phép toán hành động cần thực hiện, để giải vấn đề) Đối tượng Input kết mong muốn Output thuật toán Euclid MỐI QUAN HỆ GIỮA CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Thực đề án tin học chuyển toán thực tế thành toán giải máy tính Một toán thực tế bao gồm đối tượng liệu yêu cầu xử lý đối tượng Vì thế, để xây dựng mô hình tin học phản ánh toán thực tế cần trọng đến hai vấn đề : Tổ chức biểu diễn đối tượng thực tế : Các thành phần liệu thực tế đa dạng, phong phú thường chứa đựng quan hệ với nhau, mô hình tin học toán, cần phải tổ chức , xây dựng cấu trúc thích hợp cho vừa phản ánh xác liệu thực tế này, vừa dễ dàng dùng máy tính để xử lý Công việc gọi xây dựng cấu trúc liệu cho toán Xây dựng thao tác xử lý liệu: Từ yêu cầu xử lý thực tế, cần tìm giải thuật tương ứng để xác định trình tự thao tác máy tính phải thi hành kết mong muốn, bước xây dựng giải thuật cho toán Tuy nhiên giải toán máy tính, thường có khuynh hướng trọng đến việc xây dựng giải thuật mà quên tầm quan trọng việc tổ chức liệu toán Giải thuật phản ánh phép xử lý , đối tượng xử lý giải thuật lại liệu, liệu chứa đựng thông tin cần thiết để thực giải thuật Để xác định giải thuật phù hợp cần phải biết tác động đến loại liệu (ví dụ để làm nhuyễn hạt đậu , người ta dùng cách xay không băm dao, đậu văng ngoài) chọn lựa cấu trúc liệu cần phải hiểu rõ thao tác tác động đến (ví dụ để biểu diễn điểm số sinh viên người ta dùng số thực thay chuỗi ký phải thực thao tác tính trung bình từ điểm số đó) Như đề án tin học, giải thuật cấu trúc liệu có mối quan hệ chặt chẽ với nhau, thể qua công thức : 2/6 Giải thuật cấu trúc liệu~ Cấu trúc liệu + Giải thuật = Chương trình Với cấu trúc liệu chọn, có giải thuật tương ứng, phù hợp Khi cấu trúc liệu thay đổi thường giải thuật phải thay đổi theo để tránh việc xử lý gượng ép, thiếu tự nhiên cấu trúc không phù hợp Hơn nữa, cấu trúc liệu tốt giúp giải thuật xử lý phát huy tác dụng tốt hơn, vừa đáp ứng nhanh vừa tiết kiệm vật tư, giải thuật dễ hiễu đơn giản Ví dụ 1.1: Một chương trình quản lý điểm thi sinh viên cần lưu trữ điểm số sinh viên Do sinh viên có điểm số ứng với môn học khác nên liệu có dạng bảng sau: Sinh viên Môn Môn Môn3 Môn4 SV SV SV Chỉ xét thao tác xử lý xuất điểm số môn sinh viên Giả sử có phương án tổ chức lưu trữ sau: Phương án : Sử dụng mảng chiều Có tất 3(SV)*4(Môn) = 12 điểm số cần lưu trữ, khai báo mảng result sau : int result [ 12 ] = {7, 9, 5, 2,5, 0, 9, 4,6, 3, 7, 4}; mảng result phần tử lưu trữ sau: Và truy xuất điểm số môn j sinh viên i - phần tử (dòng i, cột j) bảng phải sử dụng công thức xác định số tương ứng mảng result: bảngđiểm(dòng i, cột j) ⇒ result[((i-1)*số cột) + j] Ngược lại, với phần tử mảng, muốn biết điểm số sinh viên nào, môn gì, phải dùng công thức xác định sau 3/6 Giải thuật cấu trúc liệu~ result[ i ] ⇒ bảngđiểm (dòng((i / số cột) +1), cột (i % số cột) ) Với phương án này, thao tác xử lý cài đặt sau : void XuatDiem() //Xuất điểm số tất sinh viên{ const int so_mon = 4;int sv,mon;for (int i=0; i ... học, giải thuật cấu trúc liệu có mối quan hệ chặt chẽ với nhau, thể qua công thức : 2/6 Giải thuật cấu trúc liệu~ Cấu trúc liệu + Giải thuật = Chương trình Với cấu trúc liệu chọn, có giải thuật. .. ứng, phù hợp Khi cấu trúc liệu thay đổi thường giải thuật phải thay đổi theo để tránh việc xử lý gượng ép, thiếu tự nhiên cấu trúc không phù hợp Hơn nữa, cấu trúc liệu tốt giúp giải thuật xử lý phát... i, result[i][j]); } 4/6 Giải thuật cấu trúc liệu~ NHẬN XÉT Có thể thấy rõ phương án cung cấp cấu trúc lưu trữ phù hợp với liệu thực tế phương án 1, giải thuật xử lý cấu trúc liệu phương án đơn

Ngày đăng: 31/12/2015, 11:30

Từ khóa liên quan

Mục lục

  • Giải thuật và cấu trúc dữ liệu~

  • GIẢI THUẬT

  • MỐI QUAN HỆ GIỮA CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

    • Tổ chức biểu diễn các đối tượng thực tế :

    • Xây dựng các thao tác xử lý dữ liệu:

    • CÁC TIÊU CHUẨN ĐÁNH GIÁ CẤU TRÚC DỮ LIỆU

      • Phản ánh đúng thực tế :

      • Phù hợp với các thao tác trên đó:

      • Tiết kiệm tài nguyên hệ thống:

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

Tài liệu liên quan