На высоком уровне это - довольно простая проблема, потому что можно думать о сортировке, как просто выполнено с помощью итераций поиска. Когда Вы хотите вставить элемент в заказанный массив, список или дерево, необходимо искать точку, в которой можно вставить его. Тогда Вы вставляете его по, надо надеяться, низкой цене. Таким образом, Вы могли думать об алгоритме сортировки как о просто взятии набора вещей и, один за другим, поиск надлежащего положения и вставка их. Таким образом вид вставки (O (n* n)) является выполненным с помощью итераций линейным поиском (O (n)). Дерево, "куча", слияние, основание и быстрая сортировка (O (n*log (n))) могут считаться выполненным с помощью итераций двоичным поиском (O (журнал (n))). Возможно иметь O (n) вид, если базовый поиск является O (1) как в заказанной хэш-таблице. (Пример этого сортирует 52 карты путем бросания их в 52 мусорных ведра.)
, Таким образом, ответ на Ваш вопрос, вставляя вещи по одному, по сравнению с коплением их, и затем сортировка их не должна иметь большого значения в большом-O смысле. У Вас могли, конечно, быть постоянные множители для контакта с, и те могли бы быть значительными.
, Конечно, если n является маленьким, как 10, целое обсуждение глупо.
Вам нужен модификатор x
print_r(preg_match('/aaa
bbb/x', 'aaabbb'));
Вероятно, у вас проблема с точками, которые не соответствуют новым строкам в вашем регулярном выражении. Вы можете использовать модификатор s , он заставит точки совпадать со всем, даже с новой строкой.
Надеюсь, это поможет
это даст
/aaaaaaa.+b/ms
Также было бы лучше использовать \ n, потому что в зависимости от вашего редактора (Unix или Windows) новая строка может состоять из разных символов, CR + LF или только LF .. . так что ваш код не будет переносимым.
или действительно игнорировать пробелы в регистре ex
function formatRegEx($reg){
return preg_replace('/(\s+)/m', '\s+', $reg);
}