Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Подскажите, плиз, алгоритм или метод полного перебора элементов массива int. Нужно для задачи. Подробнее: массив "0,1,2,3,4,5,6,7,8,9". Задача, конечно, решается более эффективным способом, но нужен именно этот. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 14:01 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 14:09 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Lion HC, не так понял вопрос. Надо не ходить по массиву от первого до последнего элемента, а менять элементы в массиве. Например: 0123456789, 0123456798, 0123456879, .... , 9876543210. Как можно это реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 14:52 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 14:53 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
половина тем от студентов троишников (двоишники просто тупо все покупают) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 15:22 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Куда мир катится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 16:32 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
2 sheeona: Хотите перебрать все перестановки (permutations) массива? std::prev_permutation std::next_permutation ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2009, 02:14 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
next_permutation и prev_permutation удобны, и хорошо что они есть(сам их использовал не так давно). Но опять возникает такой вопрос: как много времени могут выполняться данные функции ? Стандарт ничего не говорит (и судя по всему не должен), это не очень хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 02:37 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
SSудобны Когда число элементов не более 12 (Кнут в первом издании говорит о 10, но это было больше 30 лет назад) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 02:42 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
SashaMercurynext_permutation и prev_permutation удобны, и хорошо что они есть(сам их использовал не так давно). Но опять возникает такой вопрос: как много времени могут выполняться данные функции ? Стандарт ничего не говорит (и судя по всему не должен), это не очень хорошо авторComplexity Up to linear in half the distance between first and last (in terms of actual swaps). Я смотрю, в примере несколько циклических сдвигов произошло. Вероятно, алгоритм на циклических сдвигах построен. Поэтому в каждой итерации перестановок может быть столько, сколько элементов в массиве или меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 08:46 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
mcureenab, подумал вы это из стандарта взяли, ещё раз посмотрел, и оказывается я вас обманул. В стандарте указано следующее: ISO/IEC N3242=11-0012Complexity: At most (last-most)/2 swaps. Хотя бы что-то есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 08:59 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
mcureenab Я смотрю, в примере несколько циклических сдвигов произошло. Вероятно, алгоритм на циклических сдвигах построен. Поэтому в каждой итерации перестановок может быть столько, сколько элементов в массиве или меньше. Видные информатики, Кнут, Скиена говорят о том, что достаточно часто программисты неверно понимают и, самое главное, используют, асимптотические обозначения, и . В стандарте написано "at most". Что это значит ? Не больше ? То есть это оценка сверху ? Либо это значит в большинстве случаев ? Мне кажется что понимать следует так. Хочется чтобы стандарт был более строг в этом отношении. Думаю что скорее всего использовали перебор с возвратом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 09:17 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Думаю там алгоритм перестановки такой: берем последний элемент, последовательно сравниваем с предыдущими пока не найдем меньший. Нашли - меняем их местами, сортируем по возрастанию все что после места замены. Не нашли - берем предпоследний и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 09:40 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
SashaMercuryв большинстве случаев чьих случаев? моих или твоих или автора? тут распределение не задано, поэтому о статистике случаев нет смысла говорить. если иное не указано, нужно понимать "худший" случай. для перебора с возвратом наверное стек нужен, а тут стека вроде как нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 09:45 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
mcureenabSashaMercuryв большинстве случаев чьих случаев? моих или твоих или автора? тут распределение не задано, поэтому о статистике случаев нет смысла говорить. если иное не указано, нужно понимать "худший" случай. для перебора с возвратом наверное стек нужен, а тут стека вроде как нет. есть тут стек или нет вы не знаете, как и я. На то она и инкапсуляция. Но я уверен что циклический сдвиг в данном алгоритме совершенно ни причём :) А под 'случаем' тут понимается исходная перестановка. Если вы не согласны с моей трактовкой того что написано в стандарте, предложите свою версию ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 10:24 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Можно просто взять и померить время на массивах разного размера. Посчитать в теле цикла кол-во итераций и вывести время одного вызова. Затем сложность оценить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 10:41 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Dima TМожно просто взять и померить время на массивах разного размера. Посчитать в теле цикла кол-во итераций и вывести время одного вызова. Затем сложность оценить. Это совсем не просто. Время зависит от порядка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 13:46 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
SashaMercuryА под 'случаем' тут понимается исходная перестановка. Если вы не согласны с моей трактовкой того что написано в стандарте, предложите свою версию ;) "At most bla-bla-bla", означает не хуже чем bla-bla-bla для всякого исходного порядка, а не для какого то усредненного. Оно и понятно, в одних задачах могут встречаться только "хорошие" порядки для которых и делать ничего не надо, один swap и готово, в других только "плохие" порядки, где надо двигать весь массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 13:53 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Саш, просвяти зачем тебе сложность данного алгоритма? массив из N элементов может быть переставлен N! раз. Т.е. больше 12-13 элементов это много комбинаций, но при этом сама перестановка будет быстра. Какая может быть задача чтобы потребовалось частично переставлять элементы в массиве например из 100-1000 элементов? Все 1000! вариантов точно не перебрать за разумное время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 20:05 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Мне кажется что ее (std::next_permutation) можно как-то улучшить введя состояние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 20:43 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
mcureenabSashaMercuryА под 'случаем' тут понимается исходная перестановка. Если вы не согласны с моей трактовкой того что написано в стандарте, предложите свою версию ;) "At most bla-bla-bla", означает не хуже чем bla-bla-bla для всякого исходного порядка, а не для какого то усредненного. Тут вы сами себе противоречите mcureenab Оно и понятно, в одних задачах могут встречаться только "хорошие" порядки для которых и делать ничего не надо, один swap и готово, в других только "плохие" порядки, где надо двигать весь массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 01:29 |
|
||
|
Метод полного перебора элементов массива
|
|||
|---|---|---|---|
|
#18+
Dima TСаш, просвяти зачем тебе сложность данного алгоритма? массив из N элементов может быть переставлен N! раз. Т.е. больше 12-13 элементов это много комбинаций, но при этом сама перестановка будет быстра. Какая может быть задача чтобы потребовалось частично переставлять элементы в массиве например из 100-1000 элементов? Все 1000! вариантов точно не перебрать за разумное время. Было интересно, потому спросил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 01:31 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39087984&tid=2018785]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
90ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 195ms |

| 0 / 0 |
