Pesquisa Binária de Javascript / Desempenho de Inserção

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);
    }
}

Eu estou fazendo uma lista grande de palavras no formato de uma matriz:

por exemplo.["a","ab","abc","b"]

Em ordem alfabética. O problema que estou tendo é modificar meu algoritmo de busca binária para adicionar a palavra no lugar correto e depois atualizar?

Qual é a melhor maneira de desempenho para adicionar uma palavra em uma matriz ordenada? E por que é a melhor maneira de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion