第 1 页
goupee.vn goupee.com Phần 3: Cấu trúc dữ liệu và giải thuật Chương 8: Tổng quan về Cấu Trúc Dữ Liệu và Giải Thuật cuu duong than cong . com fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vn goupee.com Phần 3: Cấu trúc dữ liệu và giải thuật Chương 8: Tổng quan về Cấu Trúc Dữ Liệu và Giải Thuật cuu duong than cong . com fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnCác nội dung chính goupee.com 1. Mục đích và nội dung của CTDL 2. Các khái niệm cơ bản về CTDL và giải thuật 3. Ngôn ngữ diễn đạt giải thuật 4. Thiết kế và Phân tích giải thuật cuu duong than cong . com fb.com/goupee.vn 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vn1. Mục đích và nội dung của CTDL goupee.com Mục đích: Môn học CTDL & giải thuật dành cho các sinh viên đã có những kiến thức cơ bản về lập trình và thành thạo ít nhất một trong số các ngôn ngữ lập trình cơ bản như Pascal, C, C++,.. Củng cố và nâng cao kiến thức cơ bản về cấu trúc dữ liệu và giải thuật của ngành khoa học máy tính. Tăng cường khả năng phân tích, thiết kế và cài đặt các chương trình cho máy tính. Nâng cao khả năng tư duy trừu tượng và sự khái quát khicuu duong than cong . com giải quyết các bài toán thực tế bằng máy tính fb.com/goupee.vn 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vn1. Mục đích và nội dung của CTDL goupee.com Nội dung: Trình bầy các phương pháp phân tích và thiết kế một chương trình. Giới thiệu các cấu trúc dữ liệu từ đơn giản (các cấu trúc tuyến tính như : mảng, danh sách) đến phức tạp (các cấu trúc phi tuyến như: cây, đồ thị) và các thao tác cơ bản tương ứng trên các cấu trúc dữ liệu. Tìm hiểu các giải thuật từ cơ bản như các giải thuật sắp xếp, tìm kiếm, đến một số giải thuật nâng cao như các giải thuật đệ quy, các giải thuật trên các cấu trúc dữ liệu cây,cuu duong than cong . com đồ thị. fb.com/goupee.vn 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnVí dụ minh họa goupee.com Yêu cầu: Viết một chương trình quản lý danh sách sinh viên của một lớp. Mỗi sinh viên gồm các thuộc tính: Mã số, Họ tên, Ngày sinh, Địa chỉ, Tên lớp, Môn thi, Điểm thi. Chương trình cần thực hiện các công việc sau: Cập nhật thông tin cho từng sinh viên trong danh sách, tức là có thể bổ sung, loại bỏ, hay cập nhật các thuộc tính một sinh viên trong danh sách Sắp xếp danh sách theo một trật tự nhất định, như theo Họ tên theo trật tự từ A-Z,v.v Tìm kiếm một sinh viên theo một tiêu chuẩn nào đó, ví nhưcuu duong than cong . com tìm theo Họ tên, hay theo Mã số,v.v In nội dung của danh sách …. fb.com/goupee.vn 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnVí dụ minh họa goupee.com Phân tích yêu cầu trên: có 2 nhiệm vụ chính mà chúng ta cần làm trước khi xây dựng được chương trình trên: Nắm được cách tổ chức và cài đặt cho cấu trúc danh sách sinh viên nói riêng, khái quát hơn là cho cấu trúc danh sách nói chung cần nắm được cấu trúc dữ liệu Nắm đượccuu duong than cong . comý tưởng và cách cài đặt cho các thao tác cơ bản như tìm kiếm, sắp xếp cần nắm được giải thuật fb.com/goupee.vn 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vn2. Các khái niệm cơ bản về CTDL và giảgoupee.comi thuật Giải thuật (algorithm): Là một đặc tả chính xác và không nhập nhằng về một chuỗi các bước có thể được thực hiện một các tự động, để cuối cùng ta có thể thu được các kết quả mong muốn. Đặc tả (specification) : bản mô tả chi tiết và đầy đủ về một đối tượng hay một vấn đề cuu duong than cong . com fb.com/goupee.vn 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnGiải thuật goupee.com Một số yêu cầu của giải thuật Đúng đắn, Rõ ràng (không nhập nhằng), Phải kết thúc sau một số hữu hạn bước thực hiện, Có mô tả các đối tượng dữ liệu mà thuật toán sẽ thao tác như dữ liệu vào (nguồn), dữ liệu ra (đích) và các dữ liệu trung gian,cuu duong than cong . com Thời gian thực hiện phải hợp lý. fb.com/goupee.vn 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnDữ liệu goupee.com Dữ liệu (data): Nó là các đối tượng mà thuật toán sẽ sử dụng để đạt được kết quả mong muốn. Nó cũng được dùng để biểu diễn cho các thông tin của bài boán như: các thông tin vào, thông tin ra (kết quả) và các các thông tin trung gian nếu cần. cuu duong than cong . com fb.com/goupee.vn 9 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnDữ liệu goupee.com Dữ liệu gồm có hai mặt: Mặt tĩnh (static): xác định kiểu dữ liệu (data type). Kiểu dữ liệu cho ta biết cách tổ chức dữ liệu cũng như tập các giá trị mà một đối tượng dữ liệu có thể nhận, hay miền giá trị của nó. Ví dụ như kiểu số nguyên, kiểu số thực,.. Mặt động (dynamic): là trạng thái của dữ liệu như tồn tại hay không tồn tại, sẵn sàng hay không sẵn sàng. Nếu dữ liệu đang tồn tại thì mặt động của nó còn thể hiện ở giá trị cụ thể của dữ liệu tại từng thời điểm. Trạng thái hay giá trị của dữ liệu sẽ bị thay đổi khi xuất hiện những sự kiện, thaocuu duong than cong . com tác tác động lên nó. fb.com/goupee.vn 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnCấu trúc dữ liệu goupee.com Cấu trúc dữ liệu (data structure) : Là kiểu dữ liệu mà bên trong nó có chứa nhiều thành phần dữ liệu và các thành phần dữ liệu đấy được tổ chức theo một cấu trúc nào đó. Nó dùng để biểu diễn cho các thông tin có cấu trúc của bài toán. Cấu trúc dữ liệu thể hiện khía cạnh logic của dữ liệu. Còn các dữ liệu không có cấu trúc được gọi là các dữ liệu vô hướng hay các dữ liệu đơn giản. VD: các kiểu dữ liệu số nguyên (integer), số thực (real), logic (boolean) là các kiểu dữ liệu đơn giản.cuu duong than cong . com fb.com/goupee.vn 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnCấu trúc dữ liệu goupee.com Có hai loại cấu trúc dữ liệu chính: Cấu trúc tuyến tính: là cấu trúc dữ liệu mà các phần tử bên trong nó luôn được bố trí theo một trật tự tuyến tính hay trật tự trước sau. Đây là loại cấu trúc dữ liệu đơn giản nhất. Ví dụ :mảng, danh sách. Cấu trúc phi tuyến: là các CTDL mà các thành phần bên trong không còn được bố trí theo trật tự tuyến tính mà theo các cấu trúc khác. Ví dụ: tập hợp (không có trật tự), cấu trúc cây (cấu trúccuu duong than cong . com phân cấp), đồ thị (cấu trúc đa hướng). fb.com/goupee.vn 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnHình minh họa: các loại CTDL goupee.com Danh sách Tập hợp cuu duong than cong . comCây Đồ thị fb.com/goupee.vn 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnCấu trúc lưu trữ (storage structure) goupee.com Cấu trúc lưu trữ của một cấu trúc dữ liệu thể hiện khía cạnh vật lý (cài đặt) của cấu trúc dữ liệu đó. Về nguyên tắc, nó là một trong số các cách tổ chức lưu trữ của máy tính Tuy nhiên trong thực tế sử dụng, cấu trúc lưu trữ thường được hiểu là cấu trúc kiểu dữ liệu mà một ngôn ngữ lập trình hỗ trợ, và số lượng các cấu trúc lưu trữ thường là số lượng các kiểu dữ liệu của ngôn ngữ lập trình đócuu duong than cong . com fb.com/goupee.vn 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnCấu trúc lưu trữ goupee.com Có hai loại cấu trúc lưu trữ chính: Cấu trúc lưu trữ trong: là CTLT nằm ở bộ nhớ trong (bộ nhớ chính) của máy tính. CTLT này có đặc điểm là tương đối đơn giản, dễ tổ chức và tốc độ thao tác rất nhanh. Tuy nhiên, CTLT này có nhược điểm là không có tính lưu tồn (persistence), và kích thước khá hạn chế. Cấu trúc lưu trữ ngoài: là CTLT nằm ở bộ nhớ ngoài (bộ nhớ phụ). CTLT ngoài thường có cấu trúc phức tạp và tốc độ thao tác chậm hơn rất nhiều so với CTLT trong, nhưng CTLT này có tính lưu tồn và cho phép chúng ta lưu trữ các dữ liệu có kích thướccuu duong than cong . com rất lớn. fb.com/goupee.vn 15 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnCấu trúc lưu trữ trong goupee.com Cấu trúc lưu trữ trong lại được chia làm hai loại: Cấu trúc lưu trữ tĩnh: là CTLT mà kích thước dữ liệu luôn cố định. Cấu trúc này còn được gọi là CTLT tuần tự. Cấu trúc lưu trữ động: là CTLT mà kích thước dữ liệu có thể thay đổi trong khi chạy chương trình. Cấu trúc này còn được gọi làcuu duong than cong . com cấu trúc con trỏ hay móc nối. fb.com/goupee.vn 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnHình minh họa: các loại CTLT tronggoupee.com a1 a2 a3 a4 a5 a6 a7 a8 Cấu trúc tĩnh a2 a5 H a1 a4 cuu duong than cong . coma3 a6 Cấu trúc động fb.com/goupee.vn 17 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnMột số đặc điểm của các CTLT tronggoupee.com CTLT tĩnh: Các ngăn nhớ đứng liền kề nhau thành một dãy liên tục trong bộ nhớ Số lượng và kích thước mỗi ngăn là cố định Có thể truy nhập trực tiếp vào từng ngăn nhờ chỉ số, nên tốc độ truy nhập vào các ngăn là đồng đều CTLT động: Chiếm các ngăn nhớ thường không liên tục Số lượng và kích thước các ngăn có thể thay đổi Việc truy nhập trực tiếp vào từng ngăn rất hạn chế, mà thường sử dụng cách truy nhập tuần tự, bắt đầu từ mộtcuu duong than cong . com phần từ đầu, rồi truy nhập lần lượt qua các con trỏ móc nối (liên kết) fb.com/goupee.vn 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vn3. Ngôn ngữ diễn đạt giải thuật goupee.com Nguyên tắc khi sử dụng ngôn ngữ: Có hai nguyên tắc cần lưu ý khi chọn ngôn ngữ diễn đạt giải thuật: Tính độc lập của giải thuật : ngôn ngữ được chọn phải làm sáng tỏ tinh thần của giải thuật, giúp người đọc dễ dàng hiểu được logic của giải thuật. Các ngôn ngữ thích hợp là ngôn ngữ tự nhiên và ngôn ngữ hình thức (như các lưu đồ thuật toán, các ký hiệu toán học). Tính có thể cài đặt được của giải thuật : ngôn ngữ được chọn phải thể hiện được khả năng có thể lập trình được của giải thuật, và giúp người đọc dễ dàng chuyển từ mô tả giải thuật thành chương trình cuu duong than cong . com Các ngôn ngữ lập trình là công cụ tốt nhất vì nó cho ta thấy rõ cài đặt của giải thuật và hoạt động của giải thuật khi chúng ta chạy chương trình trên máy tính fb.com/goupee.vn 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt
goupee.vnCác loại ngôn ngữ diễn đạt giải thuậgoupee.comt Ngôn ngữ tự nhiên Lưu đồ giải thuật: Sử dụng các hình vẽ, biểu tượng để biểu diễn cho các thao tác của giải thuật Ngôn ngữ lập trình C/C++ cuu duong than cong . com fb.com/goupee.vn 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt
显示前 20 页。下载资料查看完整内容。
暂无评论。快来抢沙发吧!
评论 (0)
暂无评论。快来抢沙发吧!