Giáo trình thuật toán phần 2
➤ Gửi thông báo lỗi ⚠️ Báo cáo tài liệu vi phạmNội dung chi tiết: Giáo trình thuật toán phần 2
Giáo trình thuật toán phần 2
III Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 các tập hợp mà các thuật toán điều tác có thể tăng trưởng, co cụm, hoặc bằng không sẽ thay đổi qua thời gian. Ta gọi các lập hợp như vậy là động [dynamic]. Nãm chương tiếp Iheo sẽ trình bày vài kỹ thuật cãn bản để biếu thị các tập hợp động hừu hạn và điều tác chúng (rên một máy tính.Các thuật toán Giáo trình thuật toán phần 2 có thể yêu cầu thực hiện vài kiểu phép toán khác nhau trên các tập hợp. Ví dụ, nhiều thuật toán chỉ cần khả nâng chèn các thành phần vào, xóa các thànGiáo trình thuật toán phần 2
h phần ra khỏi, và trắc nghiệm tư cách phần tử [membership] trong một tập hợp. Một tập hợp động hỗ trợ các phép toán này được gọi là một từ điển [dictIII Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 dữ liệu đống, hô trợ các phép toán chèn một thành phần vào và trích thành phần nhỏ nhất từ một tập hợp. Chẳng có gì ngạc nhiên, cách tốt nhất để thực thi một tập hợp động tùy thuộc vào các phép toán phải được hỗ trợ.Các thành phần của một tập hỢp độngTrong một thực thi điển hình của một tập hợp dộn Giáo trình thuật toán phần 2 g, mỗi thành phần dược biểu thị bởi đối tượng có các trường có thể được xem xét và điều tác nếu như ta có một biến (rỏ đến đối tượng. (Chương 11 sè môGiáo trình thuật toán phần 2
tả cách thực thi của các đô"i tượng và các biến trỏ trong các môi trường lập (rình không chứa chúng dưới dạng các kiểu dữ liệu cơ bản.) Có vài kiểu tIII Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 thể xem tập hợp động như là một tập hợp các giá trị khóa. Đối tượng có thể chứa dữ liệu vệ tinh [satellite data], được di chuyển vòng quanh trong các trường đối tượng khác mà bằng không lại không dược sử dụng bởi việc thực thi tập hợp. Cùng có thể có các trường được điều tác bởi các phép toán lập h Giáo trình thuật toán phần 2 ợp; các trường này có thể chứa dừ liệu hoặc các biến trỏ đến các đối tượng khác trong tập hợp.rA vx; tân hrtn Hôno oiả sử trước rầne các khóa được rútGiáo trình thuật toán phần 2
từ một tập228 Phần ỈỈI Các Câu trúc Dữ Liệutheo kiểu sáp xếp thứ tự bang chữ cái bình thường. (Một tập hợp được sáp xếp hoàn toàn thỏa tính chất tam III Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 p, hoặc đê cập đôn thành phần kế tiếp lớn hơn một thành phần đà cho trong một tập hợp.Các phép toán trên các tập hựp độngCác phép toán trên một tập hợp động có thể dược gom nhóm thành hai phạm trù: các phép truy vấn [queries], đơn giản tra về thông tin về tập hựp, và các phép toán sủa dổi. thay đổi Giáo trình thuật toán phần 2 tạp hựp. Dưới đây là một danh sách các phép toán điển hình. Thông thường, các ứng dụng cụ thê chỉ yêu cầu thực thi một vài trong số các phép toán này.Giáo trình thuật toán phần 2
SEARCHES, k) Một phép truy vấn mà, cãn cứ vào một tập hợp s và một trị khóa k, sẽ trả về một biến trỏ X đến một thành phần trong 5 sao cho Áey[xJ = k,III Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 thường mặc nhận bât kỳ trường nào trong thành phần X được thực thi tập hợp cần đến đều đũ được khởi tạo săn.DELETE(S, x) Một phdp toán sửa đổi mà, căn cứ vào một biên trỏ X đến một thành phần trong tập hợp s, sẽ gờ bỏ X ra khỏi 5. (Lưu ý, phép toán này sử dụng một biến trỏ đến một thành phần X, chứ Giáo trình thuật toán phần 2 không phải một trị khóa.)MINIMUM(S) Một phép truy vân trên một lập hợp được sắp xếp thứ lự hoàn toàn s sẽ trả về thành phần của s có khóa nhỏ nhất.MAXGiáo trình thuật toán phần 2
IMUM(S) Một phép truy vân trên một tập hợp dược sáp xếp thứ tự hoàn toàn 5 sẽ trả về thành phần của s cố khóa lớn nhất.SUCCESSOR^, x) Một phép truy vâIII Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 ếu X là thành phần cực đại.PREDECESSOR^’, x) Một phép truy vấn mà, cản cứ vào một thành phần X có khóa lây từ một tập hợp được sắp xếp thứ tự hoàn toàn s, sẽ trả về thành phần nhỏ hơn kế tiếp trong S, hoặc NIL nếu X là thành phẩn cực tiểu.Các phép truy vân SUCCESSOR và PREDECESSOR thường được khai t Giáo trình thuật toán phần 2 riển ra các tập hợp có các khóa không riêng biệt [nondistinct keys]. Với một tập hợp trên n khóa, điều giả định bình thường đó là một lệnh gọi dến MINGiáo trình thuật toán phần 2
IMUM theo sau là n - 1 lệnh gọi đến SUCCESSOR điểm lại [enumerates] các thành phần trong lập hợp theo thứ tự đà sáp xếp.Phồn Hỉ Các Càu trúc Dữ Liệu22III Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 hcp toán nào nêu trên đày trcn một tập hợp có kích cỡ n trong thời gian (Xlg n).Khái quát về Phần IIICác chương 11-15 mô lả vài cấu trúc dừ liệu có thể được dùng dể thực thi các tập hợp dộng; nhiều cấu trúc sẽ đưực dùng về sau để kiên tạo các thuật toán hiệu quả cho các bài toán khác nhau. Một câu t Giáo trình thuật toán phần 2 rúc dừ liệu quan trọng khác—đống—đa đưực giới thiệu trong Chương 7.Chương 11 mô tả cãn bản cách làm việc với các câu trúc dừ liệu dơn giản như các ngâGiáo trình thuật toán phần 2
n xếp, các hàng đợi, các danh sách nối kết, và các cây có gốc. Nó cũng nêu cách thực thi các đối tượng và các biến trỏ trong các môi trường lập trình III Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 giới thiệu các bảng ánh số [hash tables], hỗ trợ các phép toán từ điển INSERT, DELETE, và SEARCH. Trong trường hợp xấu nhất, kỹ thuật ánh sô yêu cầu 0Ợỉ) thời gian dể thực hiện một phép toán SEARCH, nhưng thời gian dự trù cho các phép toán ánh số là O( 1). Việc phân tích kỳ thuật ánh sô dựa vào xác Giáo trình thuật toán phần 2 suất, nhưng phần lớn chương không yêu cầu kiến thức về chủ đe này.Các cây tìm nhị phân, xem Chương 13, hổ trợ tất cả các phép toán lập hợp động nêu tGiáo trình thuật toán phần 2
rên đây. Trong trường hợp xấu nhất, mỗi phếp toán bó ra 0(rt) thời gian trên một cây có n thành phần, nhưng trên một cây lìm nhị phân được xây dựng ngIII Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 các cây đỏ đen [red-black trees], một biến thể của các cây tìm nhị phân. Khác với các cây tìm nhị phân bình thường, các cây đỏ đen được bào đảm sẽ thực hiện lốt: các phép toán mất ỡ(lg n) thời gian trong trường hựp xấu nhất. Một cây dỏ đen là một cây tìm cân đối; Chương 19 trình bày một kiểu cây tì Giáo trình thuật toán phần 2 m cân dối khác, có lên cây-B. Mặc dù cơ học của các cây dỏ đen có hơi phức lạp, song bạn có thể lượm lặt hầu hêì các lính chát của chúng từ chương nàyGiáo trình thuật toán phần 2
mà không cần nghiên cứu kỹ về cơ học. Tuy vậy, liến trình rà qua mã cũng khá bổ ích cho kiến thức.Chương 15 dề cập cách tăng cường các cây đỏ đen để III Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 Các cấu trúc dữ liệu cơ bảnTrong chương này, ta xem xét phần biểu thị của các tạp hợp dộng bởi các câu ưúc dừ liệu đơn giản sử dụng các biến ưỏ. Mặc dù có thể tạo dựng nhiều cấu trúc dữ liệu phức hợp bằng các biến trỏ, song ở đây ta chỉ trình bày các câu trúc sơ đẳng: các ngăn xếp, các hàng đợi, các Giáo trình thuật toán phần 2 danh sách nối kết, và các cây có gốc. Chương này cũng mô tả một phương pháp để tổng hợp các đối tượng và các biến trỏ từ các mảng.11.1 Các ngăn xếp vGiáo trình thuật toán phần 2
à các hàng đợiNgăn xếp và hàng đợi là những tập hợp động ở đó ta chỉ định trước thành phần được phép toán DELETE gỡ bỏ ra khỏi tập hợp. Trong một ngănIII Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 st out]. Cùng vậy, trong một hàng đợi, thành phần được xóa luôn là thành phần đã nằm trong tập hợp một thời gian lâu nhất: hàng đợi thực thi nội quy vào trước, ra trước, hoặc FIFO (first-in, first out]. Có vài cách hiệu quâ để thực thi các ngăn xếp và các hàng đợi trên một máy tính. Đoạn này giâi th Giáo trình thuật toán phần 2 ích cách sử dụng một mảng đơn giân để thực thi chúng.Các ngăn xếpPhép toán INSERT trên một ngân xếp thường được gọi là PUSH, và phép toán DELETE, khônGiáo trình thuật toán phần 2
g nhận một đối số thành phần, thường có tên là POP. Các tên này ám chỉ các ngăn xếp vật lý, chẳng hạn như các ngăn xếp đìa được nạp bằng lò xo trong cIII Các Cấu Trúc Dữ LiệuGiới thiệuVới khoa học máy tính, các lập hợp cũng cơ bản như đôi với toán học. Trong khi các tập hợp toán học không thay đổi, Giáo trình thuật toán phần 2 trên cùng.Gọi ngay
Chat zalo
Facebook