Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   нахождение минимума (http://www.flasher.ru/forum/showthread.php?t=103162)

doki 30.10.2007 20:12

нахождение минимума
 
Как найти минимум среди >2 переменных? Math.min работает только для двух
А если у меня переменных 20 штук, мне придется Math.min 19 раз использовать?

etc 30.10.2007 20:18

Код:

var arr = [4,7,8,9,2,4];
function min(arr) {
        var l = arr.length;
        var m = Number.POSITIVE_INFINITY;
       
        while (l--) {
                if (m > arr[l]) {
                        m = arr[l];
                }
        }
       
        return m;
}
trace(min(arr));

Код:

var arr = [4,7,8,9,2,4];
function min(arr) {
        var a = arr.concat();
        a.sort(Array.NUMERIC);
        return a[0];
}
trace(min(arr));


doki 30.10.2007 20:27

спасибо, вот эту штуку не знал sort(Array.NUMERIC)

iSextuS 30.10.2007 22:42

сортировка массива по величине - офигенное решение задачи)
мне даж в голову такое не приходило) :quiet:

etc 30.10.2007 22:51

Оно медленнее первого варианта.

terbooter 31.10.2007 09:32

а как определить которое быстрее, а которое медленнее?
байт код?

Смотрю байт код с помощью ASV4 для обоих вариантов, у второго байт код больше,
это и значит что он медленнее?

etc 31.10.2007 10:14

Нет, по байткоду скорость выполнения определить нельзя.
Скорость выполнения определяется прямо по времени выполнения, простым тестом на пару миллионов итераций. Операции копирования и сортировки медленнее простого обхода массива.

Жень Шень 31.10.2007 11:43

Привет!
Не ставля под сомнения 2-й вариант от __etc, спрошу: "А почему нельзя его сократить до:"
Код:

var arr = [4, 7, 8, 9, 2, 4];
trace(arr.sort()[0]);


etc 31.10.2007 13:02

Потому что ты изменяешь исходный массив.

Котяра 31.10.2007 19:15

ну наверное в случае
Код:

function min(arr:Array)
{
return (arr.sort()[0]);
}

Это не важно..
другой вопрос как расширить функцию
min(i1,12....in)
На произвольное кол-во элементов?


Часовой пояс GMT +4, время: 20:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.