Sto lavorando a un processo di aggiornamento che inserisce elementi in un elenco ordinato e elabora gli indici di tali elementi nell'elenco ordinato.
 Per aiutarmi con questo, ho creato una lista ordinata con un metodo "insert" che restituisce l'indice del nuovo elemento nella lista. Ad esempio, dato un elenco di   [1, 3, 5]   , quindi   insert(4)    cambierà la lista in   [1, 3, 4, 5]    e restituirà   2    (0-indicizzato). Quindi elaboro il risultato con   process(2)   . 
Attualmente, quando devo fare più aggiornamenti, faccio qualcosa di simile a
for el in elements
   index = list.insert(el)
   beginUpdates()
   process(index)
   endUpdates()
In desidera ottimizzare i tempi di aggiornamento elaborando più indici in un singolo aggiornamento. Ovviamente, quanto segue sarebbe errato:
indices = []
for el in elements
   indices.append(list.insert(el))
beginUpdates()
for index in indices
   process(index)
endUpdates()
perché ogni inserimento potrebbe invalidare un indice calcolato in precedenza. Ad esempio:
list = [1, 3, 5]
index1 = list.insert(4) // index of 4: 2
index2 = list.insert(2) // index of 4: 3
 Ora, se I   process(index1)   , elabora l'indice sbagliato. 
Quindi penso che, nello stesso modo in cui posso elaborare gli indici in batch, dovrei avere un metodo per inserire in batch gli elementi e ottenere i loro indici corretti. Qualcosa che mi permetta di fare
indices = list.batchInsert(elements)
beginUpdates()
for index in indices
   process(index)
endUpdates()
Esiste un algoritmo che può farlo elegantemente?