Цитата:
|
Цитата:
|
Ну тогда так)):
return a - b; |
Цитата:
|
Manyasha,
Array/sort |
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> |
Цитата:
маленькие массивы сортируются каким-то другим методом, который быстрее если мало элементов. |
Alexandroppolus,
наоборот, для маленьких оптимизации нет, для больших есть. помните эту кату с самописным реверсом?? |
j0hnik,
помню, только она тут не при чем. на больших массивах быстрая сортировка уделывает все остальные, потому что она асимптотически выгоднее. На маленьких асимптотика работает слегка по другому (разница между n*n и n*ln(n) копеечная, в итоге начинают рулить коэффициенты), и какой-нибудь "пузырёк" может оказаться быстрее. а так - оптимизация есть в обоих случаях. Ну и что, что массив маленький. А если надо отсортировать миллион таких маленьких? потому всё ускорено по максимуму |
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)); //не логичное |
Часовой пояс GMT +3, время: 18:43. |