Задать вопрос
@Gagatyn
Самоучка

Почему сравнивает только старшие разряды?

Вот быстрая сортировка, все сортирует как бы правильно, но нет. Она сравнивает старшие разряды. Сравнение происходит в partition(items, left, right)
Пример:
1,2,3,4,9,44,11,4,4,5,7,9,11,123,12345,12345679
Результат:
1,11,11,123,12345,12345679,2,3,4,4,4,44,5,7,9,9
Не вижу в чем проблема. Может что-то с типизированием переменных связано?
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Stalker_RED
@Stalker_RED
Да, именно с типами и связано. Пример: https://jsfiddle.net/mr8acvee/
По умолчанию .sort() обрабатывает значения как строки. https://developer.mozilla.org/ru/docs/Web/JavaScri...

UPD: Только сейчас заметил, что у вас там своя реализация quicksort. Все равно, value из input[type=text] - это строка.

Кроме того, вы там перемудрили с валидацией ввода. Русскую запятую оно не принимает, например.
Я переписал бы ее как-то так:
$("#rslt").keydown(function(event) {
  return /^[0-9,]+$/.test(rslt.value+event.key)
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы