Рассмотрим f(n) > 0
и g(n) > 0
для всех n
. Это нормально, потому что самый быстрый алгоритм имеет по крайней мере одну операцию и завершает ее выполнение после запуска. Это упростит исчисление, потому что вместо абсолютного значения (|f(n)|
) мы можем использовать значение (f(n)
).
f(n) = O(g(n))
f(n)
0 ≤ lim ──────── < ∞
n➜∞ g(n)
Для g(n) = n
: f(n)
0 ≤ lim ──────── < ∞
n➜∞ n
Примеры: Expression Value of the limit
------------------------------------------------
n = O(n) 1
1/2*n = O(n) 1/2
2*n = O(n) 2
n+log(n) = O(n) 1
n = O(n*log(n)) 0
n = O(n²) 0
n = O(nⁿ) 0
Контрпримеры: Expression Value of the limit
-------------------------------------------------
n ≠ O(log(n)) ∞
1/2*n ≠ O(sqrt(n)) ∞
2*n ≠ O(1) ∞
n+log(n) ≠ O(log(n)) ∞
f(n) = Θ(g(n))
f(n)
0 < lim ──────── < ∞
n➜∞ g(n)
Для g(n) = n
: f(n)
0 < lim ──────── < ∞
n➜∞ n
Примеры: Expression Value of the limit
------------------------------------------------
n = Θ(n) 1
1/2*n = Θ(n) 1/2
2*n = Θ(n) 2
n+log(n) = Θ(n) 1
Контрпримеры: Expression Value of the limit
-------------------------------------------------
n ≠ Θ(log(n)) ∞
1/2*n ≠ Θ(sqrt(n)) ∞
2*n ≠ Θ(1) ∞
n+log(n) ≠ Θ(log(n)) ∞
n ≠ Θ(n*log(n)) 0
n ≠ Θ(n²) 0
n ≠ Θ(nⁿ) 0
Взгляните на DateTime.ParseExact
, например
var dateTime = DateTime.ParseExact(
"12 JUN 2010",
"dd MMM yyyy",
CultureInfo.InvariantCulture);
Вы также можете указать четвертый параметр, чтобы установить Kind даты / времени, например, если это дата / время в формате UTC, тогда вы, вероятно, захотите указать DateTimeStyles.AssumeUniversal
.
Вы можете использовать DateTime.ParseExact и передать формат в этот метод, используя строки настраиваемого формата даты и времени . Это позволит вам проанализировать дату за один проход.
Эта строка DateTime действительна для DateTime.Parse ()
(или .TryParse ()
)
Что касается действительно настраиваемой строки, которую .Parse () не может ручкой, вы, вероятно, правы, вам нужно будет разорвать струну и собрать ее полезным способом.