Сортировка выбором

var numbers = [3, 5, 15, 6, 2, 1];

for (var min = 0; min < numbers.length - 1; min++) {
  var least = min;
  for (var i = min + 1; i < numbers.length; i++) {
    if (numbers[i] < numbers[least]) {
      least = i;
    }
  }
  var temp = numbers[min];
  numbers[min] = numbers[least];
  numbers[least] = temp;
}
1 лайк

Написала по другому.

for (var i = 0; i < numbers.length - 1; i++) {
var min = numbers[i];
for (var j = i + 1; j < numbers.length; j++) {
if (numbers[j] < min) {
var go = numbers[i]
numbers[i] = numbers[j];
numbers[j] = go;
}
}
};

В консоли браузера работает, а в интрефейсе задания почему то код не выполняется(

А у меня так вышло. Делал наугад:

var numbers = [3, 5, 15, 6, 2, 1];
var minNumber;
var swap;

for (var i = 0; i < numbers.length; i++) {
  for (var j = 0; j < numbers.length; j++) {
    minNumber = numbers[i];
    if (numbers[j] > minNumber) {
      minNumber = numbers[j];
      swap = numbers[i];
      numbers[i] = minNumber;
      numbers[j] = swap;
    }
  }
}

Странно, что половина следующего курса посвящена именно тому, как можно бы было решать эту задачу, в том числе команды на работу массивов, свопы и проверки не с 1го элемента. Может, тогда в описании задачи лучше вставить отсылки не на википедию, а на уроки со следующего курса (хотя бы конспекты)?

3 лайка

Я вот как решила, правда не постеснялась посмотреть объяснения для С++ и почитать про сортировку именно выборкой
var numbers = [7, 12, 57, 23, 0, 2]

for (var i = 0; i < numbers.length-1; i++)
{
var min = i;
for ( var j = i+1; j < numbers.length; j++)
{
if ( numbers[j] < numbers[min])

    min = j;
  }
var t = numbers[min];
numbers[min] = numbers[i];
numbers[i] = t;

}

console.log(numbers);

1 лайк

Согласен, не очень логично давать задачу на массив, до занятия по массивам. Например, кто не сталкивался с другими языками программирования, не может знать про функцию .lenght или формат записи numbers[ ].

3 лайка

Я не знаю, кто это и с кем их едят. Ну, глянула я на ссылку на вики. Кто такие lenght и прочее? Большая половина кода требует погуглить, чтобы понять о чём речь, а потом, в следующем курсе - сюрприз! Всё объясняется. Может имеет смысл перенести этот вызов в раздел про массивы?

3 лайка

здесь ошибка numbers[i] = numbers[j];

должно быть numbers[i] = min;