Pro zobrazení můžete použít větší hodnoty, například :
apple : 1 000 000
orange : 2 000 000
banana : 3 000 000
Nyní, pokud chci přidat potato
na pozici 2 (n=2) vezmu pozici n (=> 2 :pomeranč) a (n-1) (=> 1 :jablko) a vydělím je 2, abych dostal novou pozici brambor:
(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
To bude fungovat docela dlouho, a pokud budete mít v určitou chvíli pocit, že jste toto schéma vyčerpali, můžete všechny hodnoty vynásobit 1000.
Můžete také nadále používat nízkou hodnotu (1, 2, 3, ...) a definovat jejich typ jako DOUBLE
, takže se při dělení 2 nikdy nesrazí.
UPRAVIT: O umístění banánu na pozici 1 :
Pomocí vzorce (n+(n-1))/2:
Zde n =1 (nová pozice).
Naše údaje jsou:
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
banana : 3 000 000
(1 000 000+ (0))/2
=500 000
Objednávku dávám 500 000 banánu :
**banana : 500 000**
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
Ještě další řešení:vytvořte textové pole, které by bylo indexátorem a obsahovalo všechna id.
"1,2,3,4,5,6,7"
Nyní Pokud chci vložit ID prvku 8 mezi 3 a 4, musím jednoduše nahradit ",4," ",8,4,".
Ačkoli je z hlediska výpočtu složitější najít prvek na indexu n, osobně bych použil první řešení.