Ich studiere gerade und versuche, einige Algorithmen zu implementieren. Ich versuche, Big O-Notation zu verstehen, und ich kann nicht die Big O Komplexität für den Algorithmus herauszufinden unten:Big O Notation und Algorithmen
while (a != 0 && b != 0)
{
if (a > b)
a %= b;
else
b %= a;
}
if (a == 0)
common=b;
else
common=a;
Es wäre schön, wenn Sie auch ein Beispiel für Zahlen hinzufügen könnten, die 'O (log m)' Schritte benötigen, um zu zeigen, dass diese Grenze eng ist. – liori
können Sie Kommentare zum obigen Code hinzufügen? So können Sie angeben, wie Sie zu dieser Schlussfolgerung kommen können? –
@tristan Sie meinen, warum das Minimum der Zahlen auf diese Weise abnimmt? Angenommen a> b, dann ist nach einer Iteration das Minimum c = a% b, und nach 2 Iterationen ist es b% c. Wenn c <= b/2, dann ist b% c b/2, dann ist b% c = b-c
adamax