В данный момент изучаю алгоритмы, и возникло некое недопонимание термина асимптотической сложности алгоритма.
Например : мы знаем , что алгоритм SelectionSort имеет сложность O(n^2) и в лучшем и в худшем случае.
Я подсчитываю в своём алгоритме количество итераций, и при n=100 мы всегда получаем количество итераций 5050. При n=200 - 20100 итераций, n=1000 500500 итераций. Массив каждый раз заполняется случайными значениями.
И вот я совсем запутался, если сложность у нас n^2, это должно означать, что количество итераций должно быть n^2 ?
Или может быть я неправильно вставляю счётчик в свой код?
function SelectionSort(&$arr) {
$iteration = 0;
for($i=0; $i<count($arr); $i++){
$min_id=$i;
for($j=$i+1; $j<count($arr); $j++){
if ($arr[$j] < $arr[$min_id]) {
$min_id = $j;
}
$iteration++;
}
$temp = $arr[$i];
$arr[$i] = $arr[$min_id];
$arr[$min_id] = $temp;
$iteration++;
}
return $iteration;
}