Du kan använda större värden för visning, som att säga:
apple : 1 000 000
orange : 2 000 000
banana : 3 000 000
Om jag nu vill lägga till potato
i position 2 (n=2) tar jag position n (=> 2:orange) och (n-1)(=> 1:äpple) och delar dem med 2 för att få den nya potatispositionen :
(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
Detta kommer att fungera ganska länge, och om du någon gång känner att du har uttömt det här schemat kan du fortfarande multiplicera alla värden med 1000.
Du kan lika gärna fortsätta använda lågt värde (1, 2, 3, ...) och definiera deras typ som DOUBLE
, så de kommer aldrig att kollidera när de divideras med 2.
REDIGERA: Om att placera banan i position 1 :
Använder formeln (n+(n-1))/2:
Här är n =1 (ny position).
Våra uppgifter är:
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
banana : 3 000 000
(1 000000+(0))/2
=500 000
Jag ger ordern 500 000 till banan :
**banana : 500 000**
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
Ännu en lösning:skapa ett textfält som skulle vara en indexerare och innehålla alla ID.
"1,2,3,4,5,6,7"
Om jag nu vill sätta element id 8 mellan 3 och 4, måste jag helt enkelt ersätta ",4," med ",8,4,".
Även om det är mer komplicerat när det gäller datoranvändning att hitta element vid index n, så jag skulle personligen använda den första lösningen.