Ниже представлен код, в котором реализован обычный алгоритм сортировки выбором. Напомню, что сложноть этого алгоритма O(n^2). Я передаю в функцию сортировки массив размером 7 элементов. Если посчитать O(n^2), то получается 7 * 7 = 49 операций. В коде я пытаюсь посчитать тоже самое, создав переменную operations и инкрементируя её в конце каждой итерации цикла, ведь, итерация - это и есть операция (или нет?). В итоге у меня получилось 28, хотя ожидал увидеть 49. Где моя ошибка?
const sort = (collection) => {
let operations = 0;
const length = collection.length - 1;
for (let i = 0; i <= length; i++) {
let minIndex = i;
for (let j = i + 1; j <= length; j++) {
if (collection[j] < collection[minIndex]) {
minIndex = j;
}
operations++;
}
if (minIndex !== i) {
[collection[minIndex], collection[i]] = [collection[i], collection[minIndex]];
}
operations++
}
console.log('Количество операций: ', + operations);
return collection;
};
console.log(sort([2, 1, 3, 5, 6, 3, 9]));