Цитата:
var arr=[5,8,7,65,64,842,8,42,8,41,6,8,777]; alert(arr.length); delete arr[4]; delete arr[6]; delete arr[1]; arr = arr.sort(function(a,b){return (b==undefined ? -1 : 0)}); alert(arr.length); var x = arr.length; while (arr[--x]==undefined) arr.pop(); alert(arr.length); |
Раед, значения undefined в твою функцию сортировки даже не будут переданы, ибо сортируются всегда отдельно.
Во вторых, прямой обход массива -это порядок n. Сравни с сортировкой, которая O(n log n), хотя тут вообще порядок будет n, так как ничего по сути не сортируется + вызовы функции. Это что? Оптимизация? |
Цитата:
|
Цитата:
Медиана = середина распределения частот. Лучше всего подходит для характеристики расположения центра распределения для интервальной или относительной шкалы. Хороший график для понимания: или ![]() На сколько адекватна будет медиана для такого массива?: [15, "d", 1, "a", 4, "b"]. Кстати стандартный метод, числовую часть сортирует неправильно -> 1,15,4,a,b,d |
Цитата:
|
Цитата:
|
Цитата:
undefined сюда не передаются никогда-так уж сортировка устроена в js(да и не только в js, кстати). Поскольку она утверждает, что все неважно, функция вызывается ровно n-1 раз. |
Rootpassword,
Цитата:
Во вторых, то что undefined в ф-ию не попадают, это я уже понял. Но почему же они оказываются в конце массива? |
n, N-всегда количество данных.
Потому что сортируются отдельно, без функции, и записываются в конец. Все !undefined сортируются функцией, и потом все undefined просто добавляются в конец массива. |
Цитата:
arr.sort() |
Часовой пояс GMT +3, время: 10:26. |