Javascript Binario de búsqueda / Insertion Preformance

function binarySearch(value)
{
    var startIndex = 0,
        stopIndex = words.length - 1,
        middle = Math.floor((stopIndex + startIndex) / 2);

    while (words[middle] != value && startIndex < stopIndex) {
        // adjust search area
        if (value < words[middle]) {
            stopIndex = middle - 1;
        } else if (value > words[middle]) {
            startIndex = middle + 1;
        }

        // recalculate middle
        middle = Math.floor((stopIndex + startIndex) / 2);
    }
}

Estoy haciendo una gran lista de palabras en el formato de una matriz:

p.ej.["a","ab","abc","b"]

En orden alfabético. ¿El problema que tengo es modificar mi algoritmo de búsqueda binario para agregar la palabra en el lugar correcto y luego actualizar?

¿Cuál es la mejor manera de rendimiento para agregar una palabra en una matriz ordenada? ¿Y por qué es la mejor manera de hacerlo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta