Anda dapat menggunakan nilai yang lebih besar untuk tampilan, seperti katakanlah :
apple : 1 000 000
orange : 2 000 000
banana : 3 000 000
Sekarang jika saya ingin menambahkan potato
di posisi 2 (n=2) saya ambil posisi n (=> 2 :orange) dan (n-1)(=> 1 :apple) dan membaginya dengan 2 untuk mendapatkan posisi kentang yang baru :
(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
Ini akan bekerja cukup lama, dan jika pada titik tertentu Anda merasa skema ini telah habis, Anda masih dapat mengalikan semua nilai dengan 1000.
Anda juga dapat tetap menggunakan nilai rendah (1, 2, 3, ...) dan menentukan jenisnya sebagai DOUBLE
, jadi mereka tidak akan pernah bertabrakan saat membaginya dengan 2.
EDIT : Tentang menempatkan pisang di posisi 1 :
Menggunakan rumus (n+(n-1))/2:
Di sini n =1 (posisi baru).
Data kami adalah :
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
banana : 3 000 000
(1 000000+(0))/2
=500.000
Saya kasih order 500.000 untuk pisang :
**banana : 500 000**
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
Solusi lain:buat bidang teks yang akan menjadi pengindeks dan berisi semua id.
"1,2,3,4,5,6,7"
Sekarang Jika saya ingin meletakkan elemen id 8 antara 3 dan 4, saya cukup mengganti ",4," dengan ",8,4,".
Meskipun lebih rumit dalam hal komputasi untuk menemukan elemen di indeks n jadi saya pribadi akan menggunakan solusi pertama.