Dưới đây là một số ghi chép đơn giản khi đọc sách - kết quả tỷ số
Gần đây tôi đã đọc qua cuốn sổ tay thuật toán thu gom rác và tìm hiểu đến chương ba về thuật toán đánh dấu-sắp xếp. Dưới đây là một số ghi chép đơn giản khi đọc sách.
Thuật toán sắp xếp hai con trỏ
Đối với một vùng cần được sắp xếp, sử dụng hai con trỏ: free
ở đầu vùng và scan
ở cuối vùng. Con trỏ free
di chuyển từ trước ra sau cho đến khi tìm thấy một vùng trống, trong khi scan
di chuyển từ sau ra trước để tìm các đối tượng còn sống. Khi con trỏ free
chưa vượt qua scan
, địa chỉ của 228kbet free
sẽ được gắn vào vị trí tương ứng của đối tượng tại scan
, điều này biểu thị nơi mà đối tượng đó sẽ được chuyển đi. Tuy nhiên, thuật toán này thường áp dụng tốt hơn khi kích thước các đối tượng là đồng nhất. Nếu không, khi free
quét qua, nó cũng cần phải khớp với kích thước của các đối tượng sống mà scan
phát hiện.
Thuật toán sắp xếp Lisp 2
Thuật toán này yêu cầu ba lần duyệt toàn bộ vùng đống (heap). Lần duyệt đầu tiên tính toán địa chỉ cuối cùng (địa chỉ chuyển tiếp) của tất cả các đối tượng. Lần duyệt thứ hai sử dụng địa chỉ chuyển tiếp này để cập nhật các tham chiếu trong các luồng gốc của trình phân phối (assigner thread root) và trong các đối tượng đã được đánh dấu, đảm bảo rằng chúng vẫn trỏ tới vị trí mới của đối tượng. Cuối cùng, lần duyệt thứ ba thực hiện việc di chuyển các đối tượng còn sống tới vị trí đích mới của chúng.
Thuật toán dây dẫn
Một cách tiếp cận thú vị khác là thuật toán dây đăng ký 99bet dẫn. Trong trường hợp có các đối tượng A, B, C tham chiếu đến N, trong lần duyệt đầu tiên, các tham chiếu này sẽ được đảo ngược. Địa chỉ của A sẽ được lưu trữ trong phần đầu của đối tượng N để biểu thị mối liên kết này. Khi duyệt đến B, nó sẽ được nối tiếp vào chuỗi này. Cuối cùng, tất cả các đối tượng tham chiếu đến N sẽ được liên kết thành một chuỗi thông qua dây dẫn. Trong lần duyệt thứ hai, địa chỉ của N sẽ được cập nhật trong các đối tượng A, B, C và sau đó di chuyển N đến vị trí mới.
Thuật toán duyệt một lần
Cách tiếp cận này thường sử dụng cấu trúc bản đồ bit (bitmap) để đánh dấu vùng nhớ của các đối tượng còn sống. Ký tự đầu tiên và ký tự cuối cùng của vùng nhớ của mỗi đối tượng sống sót sẽ được đánh dấu trong bản đồ bit. Thông thường, nếu sử dụng phương pháp thông thường, cần một nơi riêng biệt để lưu trữ địa chỉ chuyển tiếp. Tuy nhiên, vì vị trí cụ thể có thể được tính toán thông qua bản đồ bit, nên không cần thiết phải ghi lại thêm bất kỳ thông tin nào.
Tất cả những thuật toán trên đều có những ưu Trang Cá Cược điểm và hạn chế riêng, tùy thuộc vào ngữ cảnh sử dụng mà chúng ta có thể chọn phương án phù hợp nhất.