Глупо идея: сделайте первый проход, чтобы разделить все разные элементы в группах, которые можно сравнить друг с другом, сортировать отдельные группы и, наконец, объединить их. Я предполагаю, что элемент сопоставим со всеми членами группы, если он сопоставим с первым членом группы. Что-то вроде этого (Python3):
import itertools
def python2sort(x):
it = iter(x)
groups = [[next(it)]]
for item in it:
for group in groups:
try:
item < group[0] # exception if not comparable
group.append(item)
break
except TypeError:
continue
else: # did not break, make new group
groups.append([item])
print(groups) # for debugging
return itertools.chain.from_iterable(sorted(group) for group in groups)
Это будет иметь квадратичное время работы в жалком случае, когда ни один из элементов не сопоставим, но, я думаю, единственный способ узнать, что обязательно нужно проверить все возможные комбинации. См. Квадратичное поведение как заслуженное наказание для тех, кто пытается сортировать длинный список несортируемых предметов, например, сложных чисел. В более общем случае из сочетания некоторых строк и некоторых целых чисел скорость должна быть похожа на скорость нормальной сортировки. Быстрое тестирование:
In [19]: x = [0, 'one', 2.3, 'four', -5, 1j, 2j, -5.5, 13 , 15.3, 'aa', 'zz']
In [20]: list(python2sort(x))
[[0, 2.3, -5, -5.5, 13, 15.3], ['one', 'four', 'aa', 'zz'], [1j], [2j]]
Out[20]: [-5.5, -5, 0, 2.3, 13, 15.3, 'aa', 'four', 'one', 'zz', 1j, 2j]
Кажется, что это тоже «стабильный вид», так как группы формируются в том порядке, в котором встречаются несравненные элементы.
Урок истории.
было время, когда сеть не доминировала над Интернетом. Организация с доменом (например, мой университет, aston.ac.uk) обычно имела бы несколько имен узлов настроенными для различных сервисов: gopher.aston.ac.uk (Gopher является предшественником Всемирной паутины), news.aston.ac.uk (для Usenet NNTP), ftp.aston.ac.uk (FTP - включая анонимные архивы FTP). Они были просто очевидными названиями доступа к тем сервисам.
, Когда HTTP пришел, соглашение стало, чтобы дать веб-серверу имя узла "www". Соглашение было так широко распространено, что некоторые люди приехали, чтобы полагать, что "www" часть на самом деле сказала клиенту что протокол использовать.
, Что соглашение остается популярным сегодня, и оно действительно делает некоторую сумму смысла. Однако это технически не требуется.
я думаю, что Slashdot был одним из первых веб-сайтов, которые решат использовать www-меньше URL. Их главный человек Rob Malda обращается к "TCWWW" - "Проклятому WWW" - когда газетные статьи включают "www" в его URL. Я предполагаю, что для сайта как Slashdot, который является, прежде всего, веб-сайтом до сильного градуса, "www" в URL, избыточно.
можно выбрать, какой бы ни Вам нравится как канонический адрес. Но действительно будьте последовательны. Перенаправление от других форм до канонической формы является хорошей практикой.
Кроме того, пропуск “www. ” сохраняет Вас четыре байта по каждому запросу.:)
Это - просто субдомен на основе традиции, действительно. Нет никакого смысла из него, если Вам не нравится он, и это тратит впустую время ввода также. Мне нравится [еще 110] что http://www.somedomain.com
для моих сайтов.
Это - прежде всего, вопрос установления косвенности для имен узлов. Если Вы хотите быть в состоянии измениться, где www.example.com указывает, не влияя, где точки example.com, это имеет значение. Это, более вероятно, будет полезно, когда сеть была моложе, и "www" помог прояснить, почему поле существовало. В эти дни, многие, много доменов существуют в основном для обслуживания веб-контента, и example.com записывает, почти должен указать на сервер HTTP так или иначе, так как люди вслепую опустят www. (Только на этой неделе я был испуган, когда я пытался идти в сайт, кто-то упомянул, только чтобы найти, что он не работал, когда я опустил www, или когда я случайно добавил запаздывающую точку после TLD.)
Исключение "www" является очень Гаммой Web 2.0 Adoptr..., но с серьезным основанием. Если люди только переходят к Вашему сайту для веб-контента, почему продолжают повторно добавлять www? Я общий, я отбросил бы его.
Google Analytics должен работать просто великолепно с или без www субдомена, все же. Много сайтов с помощью GA успешно, которые не вызывают либо/либо.
Это - дважды косвенный домен (см. Доменное имя . Было время, где оно определяло физический сервер: некоторые сайты использовали URL как www1.foo.com, www3.foo.com и так далее.
Теперь, это является более виртуальным (различные домены 3-го уровня, указывающие на тот же сервер, тот же URL, обработанный различными серверами), но это часто используется для обработки субдоменов, и с некоторым приемом, можно даже обработать бесконечное число субдоменов: посмотрите, точно, Википедию, которая использует этот уровень для языка (en.wikipedia.org, fr.wikipedia.org и так далее) или сайт других, чтобы дать дружественные URL их пользователям (например, моя страница http://PhiLho.deviantART.com ).
, Таким образом, www. не просто здесь для художественного оформления, он имеет цель, даже если подавляющее большинство сайтов просто придерживается этого значения по умолчанию, и если не, если, предоставьте его автоматически. Я знал некоторые сайты, забывающие перенаправить, давая ошибку, если Вы опустили ее, в то время как они связались на www-меньшем-количестве URL: они ожидали, что пользователи предоставят его автоматически!
Уже не говоря о URL уже определяет, какой протокол должен использоваться так "www". действительно бесполезно.
, Насколько я помню, в старину сервисы как www и ftp были расположены на различных машинах, поэтому использование естественных функций DNS (субдомены) было необходимо в это время (более или менее).
Важно знать, что если вы не используете www (или какой-либо другой поддомен), тогда все файлы cookie будут отправляться на каждый поддомен, и вы не сможете иметь файлы cookie. -домен для обслуживания статического контента, что уменьшает объем данных, передаваемых между браузером и сервером. Что-то, о чем вы позже могли бы пожалеть.
(С другой стороны, аутентификация пользователей в поддоменах становится более сложной.)