Bạn có thể sử dụng các giá trị lớn hơn để hiển thị, chẳng hạn như:
apple : 1 000 000
orange : 2 000 000
banana : 3 000 000
Bây giờ nếu tôi muốn thêm potato
ở vị trí 2 (n =2) Tôi lấy vị trí n (=> 2:cam) và (n-1) (=> 1:táo) và chia chúng cho 2 để có vị trí khoai tây mới:
(1 000 000 + 2 000 000) / 2
=1 500 000
apple : 1 000 000
**potato : 1 500 000**
orange : 2 000 000
banana : 3 000 000
Điều này sẽ hoạt động trong một thời gian khá dài và nếu một lúc nào đó bạn cảm thấy như mình đã cạn kiệt lược đồ này, bạn vẫn có thể nhân tất cả các giá trị với 1000.
Bạn cũng có thể tiếp tục sử dụng giá trị thấp (1, 2, 3, ...) và xác định loại của chúng là DOUBLE
, vì vậy chúng sẽ không bao giờ va chạm khi chia chúng cho 2.
CHỈNH SỬA: Về cách đặt chuối ở vị trí 1:
Sử dụng công thức (n + (n-1)) / 2:
Đây n =1 (vị trí mới).
Dữ liệu của chúng tôi là:
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
banana : 3 000 000
(1 000000+ (0)) / 2
=500 000
Tôi cho đơn hàng 500 000 quả chuối:
**banana : 500 000**
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
Tuy nhiên, một giải pháp khác:tạo một trường văn bản sẽ là một trình lập chỉ mục và chứa tất cả các id.
"1,2,3,4,5,6,7"
Bây giờ Nếu tôi muốn đặt id phần tử 8 giữa 3 và 4, tôi chỉ cần thay thế ", 4," bằng ", 8,4,".
Mặc dù phức tạp hơn về mặt tính toán để tìm phần tử ở chỉ mục n, vì vậy tôi muốn người phân tích sử dụng giải pháp đầu tiên.