Просмотр полной версии : Выборка наименьшего значения из массива
Есть массив , в нем допустим 13 2 16 233 188 45
как попрсить флэш чтобы выбрала наименьшее ( наибольшее ? )
Пожалуйста :)
Добавлено через 7 минут
Если в массиве 2-3 числа , то я понимаю их можно сравнить , а если больше ?
var Arr:Array = new Array();
Arr = [13, 2, 16, 233, 188, 45];
Arr.sort(sravnenie);
var vivod_min = Arr[0];//наименьшее число
Arr.reverse()
var vivod_max = Arr[0];// наибольшее число
trace(vivod_min)
trace(vivod_max)
//
function sravnenie(el1, el2) {
if (el1<el2) {
return -1;
} else if (el1>el2) {
return 1;
} else {
return 0;
}
}
Mnilionic
04.12.2008, 04:39
если сам массив изменяться не должен, а нужно только найти значения, то можно так:
var Arr:Array = new Array();
Arr = [13, 2, 16, 233, 188, 45];
function max_min(arr){
var indexes = arr.sortOn(null, 16 | 8);
var min = arr[indexes.shift()];
var max = arr[indexes.pop()];
return {max: max, min: min};
}
var rslt = max_min(Arr);
trace('max = ' + rslt.max + ', min = ' + rslt.min);
trace(Arr);
Жень Шень
04.12.2008, 11:07
Привет!
Вариант:
var arr:Array = new Array();
arr = [13, 2, 16, 233, 188, 45];
var arr2:Array = new Array();
arr2=arr2.concat(arr)
arr2.sortOn("", Array.NUMERIC);
trace("arrMin="+arr2[0])
trace("arrMax="+arr2[arr.length-1])
Жень Шень
Привет , слушай , а что значит конкатенация , для чего она ? )
У меня все вроде работает и без неё , использую Array.NUMERIC
_musicano
09.12.2008, 22:59
Ребята, а не проще ли так?
(поиск наименьшего члена последовательности)
var Arr:Array = new Array();
Arr = [13, 2, 16, 233, 188, 45];
N = Arr.length;
min = Arr[0];
for (i=1; i<N; i++) {
if (Arr[i]<min) {
min = Arr[i];
}
}
trace(min);
Функции sort, sortOn, reverse, concat вообще-то необоснованно увеличивают шаги алгоритма (и он дольше работает, хоть это и незаметно в данном случае). Несмотря на современные мощности, красоту алгоритмов ещё никто не отменял.
Объясняя человеку, как ищется наименьший элемент, неплохо бы детально понимать, как работает та же функция sortOn, согласны?
Жень Шень
10.12.2008, 11:32
Объясняя человеку, как ищется наименьший элемент, неплохо бы детально понимать, как работает та же функция sortOn, согласны?
Я доверяю ХЭЛПу от разработчика. В нем практичечки все понятно. Но может быть sortOn особый случай?
2igrayka я тоже много не знаю, но если возникает проблема толкования слова я обращаюсь сначала к википедии (http://ru.wikipedia.org/wiki/Конкатенация). Это не "тык", а предложении внести ссылку в свои закладки.
А если это по поводу "arr2=arr2.concat(arr)", то смотрим пункт #4: "если сам массив изменяться не должен..."
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.