STR.INP STR.OUT PBBCEFATZQABCDABEFA 7 PBBCEFATZ -> Delete(9) -> PBBCEFAT PBBCEFAT -> Delete(8) -> PBBCEFA PBBCEFA -> Insert(4, B) -> PBBCBEFA PBBCBEFA -> Insert(4, A) -> PBBCABEFA PBBCABEFA -> Insert(4, D) -> PBBCDABEFA PBBCDABEFA -> Replace(2, A) -> PABCDABEFA ...
§3. MỘT SỐ BÀI TOÁN QUY HOẠCH ĐỘNG 3.1. DÃY CON ĐƠN ĐIỆU TĂNG DÀI NHẤT Cho dãy số nguyên A = a 1 , a 2 , …, a n . (n 5000, -10000 a i 10000). Một dãy con của A là một cách chọn ra trong A một số phần tử giữ nguyên thứ tự. Như vậy ...
Ví dụ với n = 5, bảng F sẽ là: F 0 1 2 3 4 5 0 1 0 0 0 0 0 1 1 1 1 1 1 1 2 1 1 2 2 3 3 3 1 1 2 3 4 5 4 1 1 2 3 5 6 5 1 1 2 3 5 7 m v Nhìn vào bảng F, ta thấy rằng F[m, v] được tính bằng tổng của: Một phần tử ở hàng trên: F[m - 1, v] và một phần tử ở ...
Về mặt trung bình, các thao tác tìm kiếm, chèn, xoá trên cây tìm kiếm số học đều có độ phức tạp là O(log 2 n) còn trong trường hợp xấu nhất, độ phức tạp của các thao tác đó là O(z), bởi cây tìm kiếm số học có chiều cao không ...
4 2 6 1 3 5 7 9 Hình 37: Cây nhị phân tìm kiếm Thuật toán tìm kiếm trên cây có thể mô tả chung như sau: Trước hết, khoá tìm kiếm X được so sánh với khoá ở gốc cây, và 4 tình huống có thể xảy ra: Không có gốc (cây rỗng): X không có trên ...
( EXCHANGE RADIXSORT ) procedure RadixSort; const MaxBit = 13; var MaskBit: array[0.MaxBit] of Integer; MaxValue, i: Integer; procedure Partition(L, H, BIndex: Integer); var i, j, Mask: Integer; begin if L >= H then Exit; i := L; j := H; Mask := MaskBit[BIndex]; repeat while (i < j) and (k[i] ...
8.11. THUẬT TOÁN SẮP XẾP TRỘN (MERGESORT) 8.11.1. Phép trộn 2 đường Phép trộn 2 đường là phép hợp nhất hai dãy khoá đã sắp xếp để ghép lại thành một dãy khoá có kích thước bằng tổng kích thước của hai dãy khoá ban đầu và dãy ...
9 8 6 7 4 2 1 3 5 5 8 6 7 4 2 1 3 9 Hình 33: Vun phần còn lại thành đống rồi lại đảo trị k 1 cho k n-1 Thuật toán HeapSort có hai thủ tục chính: Thủ tục Adjust(root, endnode) vun cây gốc root thành đống trong điều kiện hai cây gốc 2.root và 2.root +1 ...
Thứ tự sắp xếp. Một cách tổng quát, ta sẽ sắp xếp dãy k 1 , k 2 , …, k i trong điều kiện dãy k 1 , k 2 , …, k i-1 đã sắp xếp rồi bằng cách chèn k i vào dãy đó tại vị trí đúng khi sắp xếp. procedure InsertionSort; var i, j: Integer; tmp: ...
T := ''; {Đặt lại T để chuẩn bị đọc phần tử mới} end; WriteLn(RPN, ' = ', Pop:0:4); {In giá trị biểu thức RPN được lưu trong Stack} end. 7.4. CHUYỂN TỪ DẠNG TRUNG TỐ SANG DẠNG HẬU TỐ Có thể nói rằng việc tính toán biểu ...
6.4.2. Duyệt theo thứ tự giữa (inorder traversal) Trong phép duyệt theo thứ tự giữa thì giá trị trong mỗi nút bất kỳ sẽ được liệt kê sau giá trị lưu ở nút con trái và được liệt kê trước giá trị lưu ở nút con phải của nút đó, có ...
End; begin Last := (Last + 1) mod max; {Last chạy theo vòng tròn} Queue[Last] := V; Inc(n); end; function Pop: Integer; {Lấy một phần tử khỏi Queue, trả về trong kết quả hàm} begin if n = 0 then WriteLn('Queue is Empty') else begin Pop := Queue[First]; First := (First ...
Trang 4951, Trang 4952, Trang 4953, Trang 4954, Trang 4955, Trang 4956, Trang 4957, Trang 4958, Trang 4959, Trang 4960,