SPOJ позволяет выбирать среди множества языков программирования.Сравниваете ли вы время выполнения с другими решениями, написанными на других языках программирования?
Ради интереса я представил следующие решения первой проблемы (кодовое имя TEST
) для сравнения времени выполнения.
*Решение 1005 * C ++ (G ++ 4.3.2)
#include <iostream>
int main ( int, char** )
{
for ( int number=0; (std::cin >> number) && (number != 42); ) {
std::cout << number << std::endl;
}
}
См. Представление .
Решение Python (2.5)
import sys
for line in sys.stdin:
number = int(line)
if number == 42:
break
print number
См. представление .
Заключение
Я не уверен на 100%, что это дает абсолютную лучшую производительность в обоих языках, но там не так много кода для оптимизации.
Я получаю измерение времени 0.00
для измерения C ++ и 0.04
для кода Python.Предполагая, что последовательность чисел, представленных в обе программы, одинакова, я думаю, что сравнение времени выполнения с решениями на других языках почти бессмысленно (см. Следующий параграф).
Теперь это справедливо только для простых задач.Наиболее сложные проблемы требуют выбора правильного алгоритма для проблемы, а выбор неправильного имеет радикальные последствия.В этих случаях тщательно созданные решения Python могут все еще быть медленнее, чем тщательно созданные решения C ++, но хорошее решение Python превзойдет наивное решение, написанное на любом другом языке.