Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   найти наибольшее число в массиве (http://www.flasher.ru/forum/showthread.php?t=197171)

olejan1991 03.04.2013 14:39

найти наибольшее число в массиве
 
есть ли метод для нахождения наибольшего числа в массиве?

Hauts 03.04.2013 14:47

Код AS3:

Math.max.apply(null, myArray);


olejan1991 03.04.2013 14:49

спасибо

Добавлено через 4 минуты
Я вот на счет apply не пойму. Получается это общедоступное свойство, которое можно вызвать из любой функции?

Wolsh 03.04.2013 15:26

Это метод класса Function.
В данном случае Вы получаете аналог
Код AS3:

Math.max(myArray[0], myArray[1], ..., myArray[n], myArray[n+1]);

Ну и кроме этого способа, у массива есть метод sort().

olejan1991 03.04.2013 15:50

Мне нужно максимальное число искать в XMLlist так, что первый способ мне нужен

Inet_PC 03.04.2013 15:57

Цитата:

Ну и кроме этого способа, у массива есть метод sort().
Sort это очень медленно.

Hauts 03.04.2013 16:54

Цитата:

есть ли метод для нахождения наибольшего числа в массиве?
Цитата:

Мне нужно максимальное число искать в XMLlist так, что первый способ мне нужен
olejan1991, а сразу нормально спросить вам что помешало?

olejan1991 03.04.2013 17:06

потому что сразу я рассматривал XML list как массив, но теперь я понял, что как с массивом работать с XML listом не всегда можно поэтому сначала переношу данные из него в массив, а потом ищу в нем наибольшее число предложенным вами способом. Или это не правильно?

iflamberg 03.04.2013 17:09

На мой взгляд так правильно. Можно бегать и по XML-ке, но, если у тебя там числа, то перенос в массив, на мой взгляд, правильное решение.

mikhailk 03.04.2013 17:56

Цитата:

потому что сразу я рассматривал XML list как массив, но теперь я понял, что как с массивом работать с XML listом не всегда можно поэтому сначала переношу данные из него в массив, а потом ищу в нем наибольшее число предложенным вами способом. Или это не правильно?
А зачем вообще ищется максимальное число?
И в каком объеме данных?
Если в xml-ке двадцать строк, то имеет ли вообще смысл переносить данные в массив?

Как тут было однажды очень мудро замечено, писать много кода имеет смысл тогда, когда тебе платят за каждую строчку. :)
Короче, мне сомнительно.

expl 03.04.2013 17:56

Цитата:

Sort это очень медленно.
Не то чтобы очень (если не передавать функцию сортировки), но использовать алгоритм sort со сложностью O(n*log n) вместо max c O(n) нет ну никакого резона.
К тому же зачем менять массив? Может он упорядочен как надо был, а мы его взяли и по возрастанию отсортировали, чтобы всего лишь найти максимальное число.

Inet_PC 03.04.2013 18:11

Цитата:

Не то чтобы очень (если не передавать функцию сортировки)
Без передачи функции на массиве из 1 млн элементов разница в 100 раз, из 100 000 в 40 раз. Ну ок, просто медленнее.
Цитата:

К тому же зачем менять массив? Может он упорядочен как надо был, а мы его взяли и по возрастанию отсортировали, чтобы всего лишь найти максимальное число.
Возможно, что sort создаст новый массив, что еще хуже.

Добавлено через 9 минут
Цитата:

сначала переношу данные из него в массив, а потом ищу в нем наибольшее число предложенным вами способом.
Код AS3:

var max:Number = Number.MIN_VALUE;
for (var i:int=0;i<xmlList.length();++i)
{
        if (xmlList[i].@num > max)
        {
                max = xmlList[i].@num;
        }
}
trace(max);


olejan1991 03.04.2013 18:32

я создаю сетку из квадратов с возможностью добавления строк и столбцов и хочу добавить возможность удаления строк и столбцов и для этого определяю последние добавленные столбцы и строки путем определения их координат и удаляю последние добавленные. но вот теперь не могу понять как удалить квадраты с нужными мне значениями координат х или у

expl 04.04.2013 17:45

Цитата:

Без передачи функции на массиве из 1 млн элементов разница в 100 раз, из 100 000 в 40 раз. Ну ок, просто медленнее.
ln 1000000 = 13, плюс-минус километр - получилось 40, но для 1000 элементов разница уже будет где-то раз в 20.
Т.е. разница становится серьёзной на больших значениях, притом слабо растёт с количеством элементов, и она небольшая совсем, не в 1000 раз же отличие.

Хотя ЗАЧЕМ это делать, когда можно не сортировать - это для меня тоже загадка.

Wolsh 04.04.2013 18:35

Ну, например затем, что автору нужно удалять найденные элементы (и их может быть несколько одинаковых).
И да, порядок неважен.
И да, я не прав, потому что речь была вообще про XMLList, а не про массивы, так что sort() тут вообще никак не поможет.
И да, я ни слова не говорил о том, что sort() лучше, быстрее, предпочтительней. Я лишь предположил, что, раз у автора возник подобный вопрос,
он не в курсе что такой метод у массива есть и, возможно, подходит ему гораздо больше, чем одноразовый поиск максимального значения, принадлежащего неизвестному элементу (элементам).


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

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