Thủ tục KSortArray (a, b: mảng [1..n] của nguyên tố)
c = 0,..., 0: mảng [0..K − 1] của
cho tôi: = 1 đến n làm c[key(a[i])]
C: = 0
cho k: = 0 đến K − 1 làm (C, c[k]): = (C c [k], C)
cho tôi: = 1 đến n làm
b[c[key(a[i])]]: = một [i]
c[key(a[i])]
¥
123
/ / công tơ cho mỗi nhóm
/ / tính kích thước thùng
/ / cửa hàng
P
c [k] trong c[k].
i Dựa trên mảng phân loại với các phím trong phạm vi 0..K − 1. Đầu vào là một mảng phân loại
một. Đầu ra là b với các yếu tố của một đơn đặt hàng được sắp xếp tại. Chúng tôi chính đếm số đầu vào
cho mỗi khóa. Sau đó, chúng tôi hình thành một phần tiền của số lần. Cuối cùng, chúng tôi viết mỗi yếu tố đầu vào
vào vị trí chính xác trong mảng sản lượng.
đóng hộp không so sánh phân loại dựa trên thói quen ít dễ dàng có sẵn. Hình-
ure 5.15 cho thấy một thực hiện dựa trên mảng cẩn thận của Ksort. Nó hoạt động tốt cho
nhỏ để vừa vấn đề. Cho đầu vào lớn, nó bị vấn đề mà
phân phối các yếu tố để xô gây ra một lỗi bộ nhớ cache cho mỗi phần tử.
fix vấn đề này một có thể sử dụng thuật toán đa giai đoạn tương tự như MSK-sinh
sắp xếp. Số K của chuỗi sản lượng nên được lựa chọn như vậy cái này
khối từ mỗi nhóm được lưu giữ trong cache4. Mức độ phân phối K có thể lớn hơn
khi subarray phải được sắp xếp fits vào bộ nhớ cache. Chúng tôi có thể sau đó chuyển sang một biến thể của
uniformSort thuật toán trong hình 5.13.
một khía cạnh quan trọng thực tế liên quan đến loại của các yếu tố để được sắp xếp.
đôi khi, chúng tôi đã khá lớn các yếu tố được sắp xếp đối với phím nhỏ.
ví dụ, bạn có thể sắp xếp một cơ sở dữ liệu nhân viên theo họ. Trong này ngồi-
uation, nó làm cho tinh thần để vòng trích xuất các phím và lưu trữ chúng trong một mảng với nhau
với liên kết đến các yếu tố gốc. Sau đó, chỉ các cặp con trỏ phím được sắp xếp.
nếu các yếu tố gốc cần được đưa vào được sắp xếp trật tự, họ có thể được permuted
cho phù hợp trong thời gian tuyến tính sử dụng những sắp xếp con trỏ phím cặp.
Multiway kết hợp của một số ít các trình tự (có lẽ lên đến tám) xứng đáng
đề cập đến đặc biệt. Trong trường hợp này, cây giải đấu có thể được giữ trong bộ vi xử lý
đăng ký [150, 193].
đang được dịch, vui lòng đợi..
