Giáo trình Nhập môn cấu trúc dữ liệu và giải thuật (Nghề Thiết kế đồ hoạ CĐTC)

80 0 0
Giáo trình Nhập môn cấu trúc dữ liệu và giải thuật (Nghề Thiết kế đồ hoạ  CĐTC)

Đ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

Cau truc du lieu va giai thuat docx UỶ BAN NHÂN DÂN TỈNH ĐỒNG THÁP TRƯỜNG CAO ĐẲNG NGHỀ ĐỒNG THÁP GIÁO TRÌNH NHẬP MÔN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT MÔN HỌC/ MÔ ĐUN MĐ 11 NGÀNH, NGHỀ THIẾT KẾ ĐỒ HỌA T[.]

UỶ BAN NHÂN DÂN TỈNH ĐỒNG THÁP TRƯỜNG CAO ĐẲNG NGHỀ ĐỒNG THÁP GIÁO TRÌNH NHẬP MƠN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT MÔN HỌC/ MÔ ĐUN: MĐ 11 NGÀNH, NGHỀ: THIẾT KẾ ĐỒ HỌA TRÌNH ĐỘ: CAO ĐẲNG/TRUNG CẤP (Ban hành kèm theo Quyết định số /QĐ-CĐCĐ ngày tháng năm 2017 Hiệu trưởng trường Cao đẳng Nghề Đồng Tháp) Đồng Tháp, năm 2017 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm CHƢƠNG I: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT I Khái niệm giải thuật đánh giá độ phức tập giải thuật Khái niệm Khái niệm giải thuật hay thuật giải mà nhiều gọi thuật toán dùng để phƣơng pháp hay cách thức (method) để giải vấn đề Giải thuật đƣợc minh họa ngơn ngữ tự nhiên (natural), sơ đồ (flow chart) mã giả (pseudo code) Trong thực tế giải thuật thƣờng đƣợc minh họa hay thể mã giả tựa hay số ngơn ngữ lập trình (thƣờng ngơn ngữ mà ngƣời lập trình chọn để cài đặt thuật toán), chẳng hạn nhƣ C, Pascal, … Khi xác định đƣợc cấu trúc liệu thích hợp, ngƣời lập trình bác đầu tiến hành xây dựng giải thuật tƣơng ứng theo yêu cầu toán đặt sở cấu trúc liệu đƣợc chọn Đề giải vấn đề có nhiều phƣơng pháp, lựa chọn phƣơng pháp phù hợp việc mà ngƣời lập trình phải cân nhắc tính tốn Sự lựa chọn góp phần đáng kể việc giảm bớt cơng việc ngƣời lập trình việc cài đặt thuật tốn ngơn ngữ cụ thể Đánh giá độ phức tạp giải thuật Các tiêu chuẩn đánh giá cấu trúc liệu Đánh giá cấu trúc liệu ta thƣờng dựa vào số tiêu chí sau: • Cấu trúc liệu phải tiết kiệm tài nguyên (bộ nhớ trong) • Cấu trúc liệu phải phản ánh thực tế tốn • Cấu trúc liệu phải dể dàng thao tác liệu Đánh giá độ phức tạp thuật toán Việc đánh giá độ phức tạp tốn khơng dễ chút Ở ƣớc lƣợng thời gian thực toán T(n) để có so sánh tƣơng đối thuật toán với Trong thực tế, thời gian thực thuật tốn cịn phụ thuộc nhiều vào điều kiện khác nhƣ cấu tạo máy tính, liệu đƣa vào, …, xem xét mức độ lƣợng liệu đƣa vào ban đầu cho thuật toán thực Để ƣớc lƣợng thời gian thực thuật tốn xem xét thời gian thực thuật toán hai trƣờng hợp: • Trong trƣờng hợp tốt nhất: T(min) • Trong trƣờng hợp xấu nhất: T(max) Từ ƣớc lƣợng thời gian thực trung bình T(avg) II Các kiểu liệu Khái niệm kiểu liệu Cấu trúc liệu Giải thuật Kiểu liệu T hết hợp thành phần: • Miền giá trị mà kiểu liệu T lƣu trữ: V • Tập hợp phép toán để thao tác liệu: O T = Mỗi kiểu liệu thƣờng đƣợc biểu diễn tên (biệt danh) Mỗi phần tử liệu có kiểu T có giá trị miền V đƣợc thực phép toán thuộc tập hợp phép toán O Để lƣu trữ phần tử liệu thƣờng phải tốn số byte(s) nhớ, số byte(s) gọi kích thƣớc kiểu liệu Các kiểu liệu sở Hầu hết ngôn ngữ lập trình có cung cấp kiểu liệu sở Tùy vào loại ngôn ngữ mà kiểu liệu sở có tên gọi khác song lại có loại kiểu liệu sở nhƣ sau: TT Kiểu liệu (T) Số nguyên Số thực Ký tự Chuỗi ký tự Luận lý Kích thƣớc Các phép toán thực (V) (O) byte +, -, *, /, DIV, MOD, , =, =, … bytes bytes bytes +, -, *, /, , =, =, … bytes 10 bytes byte +, -, , =, =, ORD, bytes CHR, … Tùy thuộc vào +, , , =, =, ngôn ngữ Length, Trunc, … lập trình NOT, AND, OR, XOR, , byte =, =, … Một số kiểu liệu ngơn ngữ lập trình C TT Kiểu liệu Miền giá trị Kích thƣớc (Type) (Length) (Range) Khoa Công Nghệ Thông Tin Cấu trúc liệu Giải thuật 10 11 unsigned char char enum unsigned int short int int unsigned long long float double long double đến 255 – 128 đến 127 – 32,768 đến 32,767 đến 65,535 – 32,768 đến 32,767 – 32,768 đến 32,767 đến 4,294,967,295 – 2,147,483,648 đến 2,147,483,647 3.4 * 10–38 đến 3.4 * 1038 1.7 * 10–308 đến 1.7 * 10308 3.4 * 10–4932 đến 1.1 * 104932 byte byte bytes bytes bytes bytes bytes bytes bytes bytes 10 bytes III Các kiểu liệu trừu tƣợng Các kiểu liệu có cấu trúc Kiểu liệu có cấu trúc kiểu liệu đƣợc xây dựng sở liệu có (có thể kiểu liệu có cấu trúc khác) Tùy vào ngơn ngữ lập trình, song thƣờng có loại sau: • Kiểu mảng hay cịn gọi dãy: kích thƣớc tổng kích thƣớc phần tử • Kiểu bảng ghi hay cấu trúc: kích thƣớc tổng kích thƣớc thành phần (File) Kiểu liệu trỏ Các ngơn ngữ lập trình thƣờng cung cấp cho kiểu liệu đặt biệt để lƣu trữ địa nhớ, trỏ (Pointer) Kiểu liệu tập tin Tập tin (File) xem kiểu liệu đặc biệt, kích thƣớc tối đa tập tin tùy thuộc vào không gian đĩa nơi lƣu trữ tập tin IV Các cấu trúc liệu Có thề nói khơng có chƣơng trình máy tính mà khơng có liệu để xử lý Dữ liệu liệu đƣa vào (input data), liệu trung gian hoạc liệu đƣa (output data) Do việc tổ chức lƣu trữ liệu phục vụ cho chƣơng trình có ý nghĩa quan trọng tồn hệ thống chƣơng trình Việc xây dựng cấu trúc liệu định lớn đến chất lƣợng nhƣ cơng sức ngƣời lập trình việc thiết kế cài đặt chƣơng trình V Mối quan hệ cấu trúc liệu giải thuật Mối quan hệ cấu trúc liệu giải thuật minh họa đẳng thức: Cấu trúc liệu + Giải thuật = Chƣơng trình Nhƣ vậy, có cấu trúc liệu, nắm vững giải thuật thực việc thể chƣơng trình ngôn ngữ cụ thể vấn đề thời gian Khi có cấu trúc liệu mà Khoa Cơng Nghệ Thông Tin Cấu trúc liệu Giải thuật chƣa tìm giải thuật khơng thể có chƣơng trình ngƣợc lại khơng thể có thuật giải chƣa có cấu trúc liệu Một chƣơng trình máy tính đƣợc hồn thiện có đầy đủ Cấu trúc liệu Giải thuật xử lý liệu toán theo yêu cầu đặt  Câu hỏi Trình bày tầm quan trọng Cấu trúc liệu Giải thuật ngƣời lập trình? Các tiêu chuẩn để đánh giá Cấu trúc liệu Giải thuật? Khi xây dựng Giải thuật có cần thiết phải quan tân tới Cấu trúc liệu hay không? Tại sao? Liệt kê cá kiểu liệu sở, kiểu liệu có cấu trúc C, Pascal? Khoa Công Nghệ Thông Tin Cấu trúc liệu Giải thuật CHƢƠNG II: ĐỆ QUI VÀ GIẢI THUẬT ĐỆ QUI I Khái niệm đệ qui Bất hàm triệu gọi hàm khác, nhƣng hàm tự triệu gọi Kiểu hàm nhƣ đƣợc gọi hàm đệ qui Vậy chƣơng trình đệ qui chƣơng trình gọi đến Phƣơng pháp đệ qui thƣờng dùng phổ biến ứng dụng mà cách giải đƣợc thể việc áp dụng liên tiếp giải pháp cho tập hợp toán Một chƣơng trình đệ qui định nghĩa đệ qui khơng thể gọi đến mãi mà phải có điểm dừng đến trƣờng hợp đặc biệt đó, mà ta gọi trƣờng hợp suy biến (degenerate case) Ví dụ: Cho số tự nhiên n, ta định nghĩa n! nhƣ sau: n! = n*(n-1) 0!1  II Giải thuật đệ qui chƣơng trình đệ qui Phương pháp thiết kế giải thuật đệ qui a Tham số hố tốn b Phân tích trƣờng hợp chung (đƣa toán dƣới dạng toán loại nhƣng có phạm vi giải nhỏ theo nghiã tiến đến trƣờng hợp suy biến) c Tìm trƣờng hợp suy biến Ví dụ 1: tính n! n! = 1*2*3*…*(n-2)*(n-1)*n với n >= 0! = Viết hàm tính giai thừa khơng đệ qui Chƣơng trình Kết qua in nàm hình Khoa Cơng Nghệ Thông Tin Cấu trúc liệu Giải thuật /* Ham tinh giai thua */ #include #include void main(void) { int in; long giaithua(int); printf("Nhap vao so n: "); scanf("%d", &in); printf("%d! = %ld.\n", in, giaithua(in)); getch(); } long giaithua(int in) { int i; long ltich = 1; if (in == 0) return (1L); else { for (i = 1; i

Ngày đăng: 26/11/2022, 19:43

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan