O(M)
время и O(M)
пространство, где M >= N
для list_M
длины M
и list_N
длины N
2
. Обратите внимание, что list_N
достигнет null
до list_M
, для M > N
M=N
пересекаются, когда list_M != list_N && list_M.next == list_N.next
M>N
пересекаются, когда list_N != null
Пример кода:
Node yListsHelper(Node n1, Node n2, Node result) {
if (n1 == null && n2 == null)
return null;
yLists(n1 == null ? n1 : n1.next, n2 == null ? n2 : n2.next, result);
if (n1 != null && n2 != null) {
if (n2.next == null) { // n1 > n2
result.next = n1;
} else if (n1.next == null) { // n1 < n2
result.next = n2;
} else if (n1 != n2 && n1.next == n2.next) { // n1 = n2
result.next = n1.next; // or n2.next
}
}
return result.next;
}
Что касается производительности TCP, я недавно провел такой тест на сервере HP-UX (8 процессоров Intel Itanium 2 1,5 ГГц, 6 МБ, шина 400 МТ / с) и в Red Hat Linux (2 IA-64 1,6 ГГц). Я использовал iperf , чтобы проверить производительность TCP. Я обнаружил, что скорость обмена TCP более чем в десять раз выше, когда я запускаю iperf на одном компьютере, по сравнению с запуском iperf на двух разных машинах.
Вы также можете попробовать, так как есть параметры, которые могут вас заинтересовать - длина буфера для чтения или записи, установка TCP без задержки и так далее. Также вы можете сравнить скорость TCP-обмена на машинах с Windows, так как существует версия iperf для Winddws.
Это более подробное сравнение:
1) Скорость TCP-обмена между двумя приложениями iperf, работающими на разных HP-UX сервер, окно TCP по умолчанию 32K:
Локальные именованные каналы будут работать быстрее, так как они работают в режиме ядра.