@Yonghwa
121

Где ошибки в данном коде реализации selectionSort алгоритма?

function selectionSort(arr[]) {
		for (i = 0; i < arr.length; i++ ) {
			smallestValue = arr[i];
			smallestIndex = i;
			for (j = i; j < arr.length; j++) {
				if (arr[j] < smallestValue) {
					smallestValue = arr[j];
					smallestIndex = j;
				}
			}

			if (smallestValue < arr[i]) {
				temp = arr[i];
				arr[i] = arr[smallestIndex];
				arr[smallestIndex] = temp;
			}
		}
            return arr;
	}


	var testArray = {1,5,6,3,6,2,7,9};
	alert("Sorted array" + selectionSort(testArray));


Решение: 1) массив должен быть обернут в квадратные скобки 2) В качестве аргумента нужно передавать просто слово, без квадратных свобок.
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 2
Как минимум основной цикл не работает, так как return arr; внутри него

Ну и "по-мелочи" с массивами неверно вы работаете
https://jsfiddle.net/j5k03e19/
Ответ написан
petermzg
@petermzg
Самый лучший программист
return arr; у вас в первой же итерации выкидывает из функции
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы