Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 19.06.2018, 19:20
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони
или так
Это уже слишком
Ответить с цитированием
  #22 (permalink)  
Старый 19.06.2018, 19:22
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Manyasha
а зачем? Поменяются местами 5 и 5, это же не ошибка
лишняя операция
Ответить с цитированием
  #23 (permalink)  
Старый 19.06.2018, 19:26
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

Ну тогда так)):
return a - b;
Ответить с цитированием
  #24 (permalink)  
Старый 19.06.2018, 19:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Manyasha
Ну тогда так)):
сортируются в примере строки!!! а не числа
Ответить с цитированием
  #25 (permalink)  
Старый 19.06.2018, 19:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Manyasha,
Array/sort
Ответить с цитированием
  #26 (permalink)  
Старый 19.06.2018, 19:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Manyasha,
<script>
var stringArray = ['Банан', 'Абрикос', 'Зелень'];
stringArray.sort(function(a,b) {
  return a - b
})
document.write(stringArray + " false <br>")
stringArray.sort() //по умолчанию сортировка строк a > b ? 1 : a < b ? -1 : 0
document.write(stringArray + " true")

</script>
Ответить с цитированием
  #27 (permalink)  
Старый 19.06.2018, 20:16
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Сообщение от j0hnik Посмотреть сообщение
рони,
спасибо, вник в суть, к массивам больше 10 ячеек v8 применяет какую-то оптимизацию.
эта "оптимизация" называется быстрая сортировка )
маленькие массивы сортируются каким-то другим методом, который быстрее если мало элементов.
Ответить с цитированием
  #28 (permalink)  
Старый 19.06.2018, 20:27
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
наоборот, для маленьких оптимизации нет, для больших есть. помните эту кату с самописным реверсом??
Ответить с цитированием
  #29 (permalink)  
Старый 19.06.2018, 20:40
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

j0hnik,
помню, только она тут не при чем.

на больших массивах быстрая сортировка уделывает все остальные, потому что она асимптотически выгоднее. На маленьких асимптотика работает слегка по другому (разница между n*n и n*ln(n) копеечная, в итоге начинают рулить коэффициенты), и какой-нибудь "пузырёк" может оказаться быстрее.

а так - оптимизация есть в обоих случаях. Ну и что, что массив маленький. А если надо отсортировать миллион таких маленьких? потому всё ускорено по максимуму
Ответить с цитированием
  #30 (permalink)  
Старый 19.06.2018, 21:09
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

https://jsperf.com/45435435tret больший по размерам массив сортируется быстрей. в хроме
console.log([0,1,2,3,4,5,6,7,8,9].sort((a,b)=>b)); //логичное поведение

console.log([0,1,2,3,4,5,6,7,8,9,1].sort((a,b)=>b)); //не логичное
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript - Option, результаты из выпадающего меню. Результаты с большим количеством voron1990 Общие вопросы Javascript 3 30.04.2015 09:04
Сортировка таблицы по алфавиту dozer Events/DOM/Window 6 18.10.2014 00:22
как с помощью javascript установить selected для тега option? re-kru-t Общие вопросы Javascript 1 19.02.2011 15:49
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34