Ich möchte etwas über Big-O lernen, ich hoffe, jemand kann mir helfen, Operatoren in Method zu zählen und mir sagen, wie die Zeitkomplexität dieser Methode ist, und mir beibringen, wie man zählt. Ich habe versucht, auf Youtube zu lernen, und war etwas verwirrt.
static void SelectionSort(int[] data)
{
int temp, min;
for (int i = 0; i < data.Length - 1; i++)
{
min = i;
for (int j = 0; j < data.Length; j++)
{
if (data[j] < data[min])
{
min = j;
}
temp = data[min];
data[min] = data[i];
data[i] = temp;
}
}
}
Lösung des Problems
Die Zeitkomplexität ist für dieses Beispiel O(n^2). Der Grund ist, dass Sie eine Schleife in einer anderen Schleife verschachtelt haben.
Die äußere Schleife iteriert n-mal und gibt der inneren Schleife ein Element, die wiederum n-mal eine Schleife durchläuft, pro Schleife des äußeren Arrays.
https://adrianmejia.com/most-popular-algorithms-time-complexity-every-programmer-should-know-free-online-tutorial-course/#Bubble-sort
Keine Kommentare:
Kommentar veröffentlichen