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

102
19 июля 2021, 19:40

function selSort(arr) { 
    var tmp; 
    for (var i = 0; i < arr.length - 1; i++) { 
        if (arr[i] > arr[arr.length - 1]) { 
            tmp =  arr[i]; 
            arr[i] = arr[arr.length - 1]; 
            arr[arr.length - 1] = tmp; 
        }  
    } 
    return arr; 
} 
document.write(selSort([6, 9, 7, 8, 3, 5]))

Здравствуйте. Читал про сортировку выбором. Как понимаю, смысл алгоритма - проверять первый и последний элементы массива. Если первый элемент больше последнего - меняем их местами. В общем, я написал вот такой код, но вместо желанного [3,5,6,7,8,9] выдает [5,6,7,8,3,9]. Как исправить ситуацию?

Answer 1

JS в этом месте очень похож на C# из википедийного решения

(нагло скопировал, поменяв int на let, .Count на .length):

function sort(list) { 
  for (let i = 0; i < list.length - 1; i++) { 
    let min = i; 
    for (let j = i + 1; j < list.length; j++) { 
      if (list[j] < list[min]) { 
        min = j; 
      } 
    } 
    let dummy = list[i]; 
    list[i] = list[min]; 
    list[min] = dummy; 
    // Три строчки выше можно заменить на одну  
    // [list[i], list[min]] = [list[min], list[i]]; 
  } 
  return list; 
} 
 
console.log( sort( [4, 7, 1, 5, 9, 0, 3, 2, 8, 6] ) )

READ ALSO
Пропал InternalToponymInfo

Пропал InternalToponymInfo

Хотел бы уточнить следующий вопросВчера столкнулся с тем, что геокодер в ответе больше не возвращает поле InternalToponymInfo (расположение поля в ответе...

89
CSS: проблемы с position:fixed

CSS: проблемы с position:fixed

Делаю сайдбар с контентом, который можно проскроллитьПри этом сам сайдбар должен оставаться в фиксированном положении

303
Фон картинкой рамки слева

Фон картинкой рамки слева

Не могу уже несколько часов примудрить в стилях css изображение для фонаТо есть необходимо сделать рамку слева одним изображением и рамку...

98