• Bài giảng bài 13: Cây đỏ đenBài giảng bài 13: Cây đỏ đen

    Tuy nhiên trong một số trường hợp cây tìm kiếm nhị phân có một số hạn chế. Nó hoạt động tốt nếu dữ liệu được chèn vào cây theo thứ tự ngẫu nhiên. Tuy nhiên, nếu dữ liệu được chèn vào theo thứ tự đã đuợc sắp xếp sẽ không hiệu quả. Khi các trị số cần chèn đã đuợc sắp xếp thì cây nhị phân trở nên không cân bằng. Khi cây không cân bằng, nó mất đi khả n...

    doc13 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 2168 | Lượt tải: 1

  • Bài giảng Cây cân bằngBài giảng Cây cân bằng

    Một cây rất khó đạt được trạng thái cân bằng hoàn toàn và cũng rất dễ mất cân bằng vì khi thêm hay hủy các nút trên cây có thể làm cây mất cân bằng, chi phí cân bằng lại cây cao vì phải thao tác trên toàn bộ cây. Đối với cây cân bằng hoàn toàn, trong trường hợp xấu nhất ta chỉ phải tìm qua log2N phần tử (N là số nút trên cây). Sau đây là ví dụ ...

    doc11 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 2058 | Lượt tải: 1

  • Bài giảng Cây, cây nhị phân, cây nhị phân tìm kiếmBài giảng Cây, cây nhị phân, cây nhị phân tìm kiếm

    Cây là một tập hợp T các phần tử (nút trên cây) trong đó có 1 nút đặc biệt T0 được gọi là gốc, các nút còn khác được chia thành những tập rời nhau T1, T2 , . , Tn theo quan hệ phân cấp trong đó Ti cũng là một cây. Nút ở cấp i sẽ quản lý một số nút ở cấp i+1. Quan hệ này người ta còn gọi là quan hệ cha-con.

    doc11 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 2791 | Lượt tải: 2

  • Bài giảng bài 5: Bảng băm (hash table)Bài giảng bài 5: Bảng băm (hash table)

    Phép băm được đề xuất và hiện thực trên máy tính từ những năm 50 của thế kỷ 20. Nó dựa trên ý tưởng: biến đổi giá trị khóa thành một số (xử lý băm) và sử dụng số này để đánh chỉ cho bảng dữ liệu. Các phép toán trên các cấu trúc dữ liệu như danh sách, cây nhị phân, phần lớn được thực hiện bằng cách so sánh các phần tử của cấu trúc, do vậy thời gia...

    doc16 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 2354 | Lượt tải: 2

  • Bài giảng Một số phương pháp sắp xếpBài giảng Một số phương pháp sắp xếp

    Ý tưởng: Có dãy số: a1, a2, ., an Giải thuật QuickSort làm việc như sau: Chọn x là một phần tử làm biên: thường chọn là phần tử ở giữa dãy số. Phân hoạc dãy thành 3 dãy con 1. ak <= x , với k = 1.i 2. ak = x , với k = i.j 3. ak > =x , với k = j.N

    doc15 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 2219 | Lượt tải: 2

  • Bài giảng Cấu trúc dữ liệu và thuật toán: List, stack và queueBài giảng Cấu trúc dữ liệu và thuật toán: List, stack và queue

    Các khai báo cần thiết là typedef . ElementType; //kiểu phần tử trong danh sách typedef struct Node { ElementType Element;//Chứa nội dung của phần tử Node* Next; /*con trỏ chỉđến phần tử kế tiếp trong danh sách*/ }; typedef Node* Position; // Kiểu vị trí typedef Position List;

    pdf29 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 2769 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và thuật toán: Tìm kiếm cây đỏ đen và các cây cân bằng động khácBài giảng Cấu trúc dữ liệu và thuật toán: Tìm kiếm cây đỏ đen và các cây cân bằng động khác

    Cây Đỏ -Đen (Red-Black) • Một thuật toán phức tạp • Cho O(log n) với Thêm(addition), Xóa(deletion) và Tìm(search) • Các kỹ thuật phần mềm • Biết về thuật toán • Biết khi nào có thể dùng chúng • Biết về hiệu suất • Biết nơi có thể áp dụng • Đủthông minh để dùng cho các máy phát minh. • Họ sử dụng lại bộ mã • Vì thế họ cần nhiều thời gian h...

    pdf28 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 3295 | Lượt tải: 2

  • Bài giảng Cấu trúc dữ liệu và thuật toán: Tìm kiếmBài giảng Cấu trúc dữ liệu và thuật toán: Tìm kiếm

    Cây nhị phân O(log n) nếu nó là cây cân bằng • Cây nhịphân đơn giản tốt cho các mảng tĩnh • Tần xuất thấp (preferably zero) cho insertions/deletions Nhưng bộ dữ liệu của tôi có thể thay đổi! • Bộ dữ liệu động • Cần thiết phải tạo ra cây cân bằng • Đầu tiên, kiểm tra một vài hoạt động của cây cơ bản. • Hữu ích trong một vài cách!

    pdf37 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 1865 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và thuật giải: Tìm kiếmBài giảng Cấu trúc dữ liệu và thuật giải: Tìm kiếm

    • Tìm kiếm tuần tự • Thời gian tồi nhất là n • Chúng tôi có Độ phức tạp O(n) • Ứng dụng cho mảng (không sắp xếp) và danh sách liên kết • Tìm kiếm nhị phân • Ứng dụng cho dãy đã sắp xếp • Thời gian thực hiện thuật toán log2n • Độ phức tạp tính toán O(log n)

    pdf16 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 1994 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và thuật toán: StacksBài giảng Cấu trúc dữ liệu và thuật toán: Stacks

    Stacks là một dạng danh sách (mảng)đặc biệt vớingữ cảnh LIFO • Hai phép toán • int push( Stack s, void *item ); - Bổ xung một phần tử vào đỉnh của stack • void *pop( Stack s ); - Loại bỏ một phần tử từđỉnh của stack • Tương tựnhư một máy xếp đĩa • Các phép toán khác int IsEmpty( Stack s ); /* Return TRUE if empty */ void *Top( Stack s ); ...

    pdf11 trang | Chia sẻ: haohao89 | Ngày: 29/07/2013 | Lượt xem: 2164 | Lượt tải: 1