Простите меня, если этот вопрос немой, но мне пришло в голову, что я не знаю, как язык знает список, отсортированный или нет.Как язык * знать * при сортировке списка?
Скажем, у меня есть список:
["Apple","Apricot","Blueberry","Cardamom","Cumin"]
и я хочу, чтобы вставить "Cinnamon"
. AFAIK Язык, который я использую, не знает, что список отсортирован; это просто список. И у него нет поля зрения «широкого экрана», как у нас, поэтому он не знает, где заканчивается A-кусок, а C-кусок начинается из-за пределов списка. Таким образом, он проходит и сравнивает первую букву каждой строки массива с первой буквой строки вставки. Если символ вставки больше, он перемещается к следующей строке. Если символы совпадают, он переходит к следующей букве. Если он переходит к следующей строке, а символ массива больше, чем символ вставки, тогда туда вводится символ.
Мой вопрос в том, может ли язык KNOW, когда список сортируется? Если процесс расчесывания в несортированном и отсортированном списке один и тот же, и список по-прежнему повторяется, то как сортировка экономит время?
EDIT: Я понимаю, что «сортировка позволяет алгоритмы, которые полагаются на сортировку для работы»; Прошу прощения за то, что я не понимаю этого. Наверное, я спрашиваю, есть ли что-то внутреннее в сортировке внутри компьютерных языков, или если это стратегия, которую люди построили поверх нее. Я думаю, что это последнее, и вы, ребята, это подтвердили. Язык не знает, что он что-то сортирует или нет, но мы признаем разницу в производительности.
Этот список по умолчанию не известен. Это зависит от реализации, может быть, есть флаг или что-то в этом роде. Если ваш вопрос: «Как список знает, как сортировать?» то в Интернете есть несколько интересных вещей. – ppasler
К последнему биту слов OP - сортировка позволяет использовать такие алгоритмы, как [бинарный поиск] (https: //en.wikipedia.org/wiki/Binary_search_algorithm) для работы. – RamblinRose