Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/224: Рейтинг темы: голосов - 224, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 13

Все возможные перестановки элементов заданного массива

06.02.2013, 20:52. Показов 44007. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите вывести на консоль все возможные перестановки элементов заданного массива
C++
1
void printPermutations (int items [ ], int itemsLength) { ... }
Пример (порядок вывода результатов может отличаться):
C++
1
2
3
4
5
6
7
8
int numbers[ ] = {1, 2, 3};
printPermutations (numbers , 3);
123
132
213
231
312
321
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2013, 20:52
Ответы с готовыми решениями:

Все возможные варианты перестановки символов строки
Дана строка s, состоящая из n символ (n меньше 6) составить все возможные варианты перестановки этих символов (язык C)

Вывести все возможные перестановки слов в предложении
С клавиатуры пишем предложение. Вывести все возможные перестановки тех слов в этом предложении, что не содержат первых десяти букв...

Рекурсивная функция: все возможные перестановки символов строки
Дана строка с n элементами. Например abs. Надо выводить все возможные варианты например abs asb bas bsa sab sba. Надо...

20
0 / 0 / 0
Регистрация: 14.01.2023
Сообщений: 2
14.01.2023, 22:12
Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
using namespace std;
int main(){
    int a[123123],i,q,w,n,b[123123];
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>b[i];
    for(i=0;i<=n;i++)
        a[i]=i;
    cout<<endl;
    while(true){
        q=n-1;
        while(a[q]>a[q+1])
            q--;
        if(q==0)
            break;
        w=n;
        while(a[q]>a[w])
            w--;
        swap(a[q],a[w]);
        q++;
        w=n;
        while(q<w){
            swap(a[q],a[w]);
            q++;
            w--;
        }
        for(i=1;i<=n;i++)
            cout<<b[a[i]]<<" ";
        cout<<endl;
    }
}
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
using namespace std;
int main(){
    int a[123123],i,q,w,n,b[123123];
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>b[i];
    for(i=0;i<=n;i++)
        a[i]=i;
    cout<<endl;
    while(true){
        q=n-1;
        while(a[q]>a[q+1])
            q--;
        if(q==0)
            break;
        w=n;
        while(a[q]>a[w])
            w--;
        swap(a[q],a[w]);
        q++;
        w=n;
        while(q<w){
            swap(a[q],a[w]);
            q++;
            w--;
        }
        for(i=1;i<=n;i++)
            cout<<b[a[i]]<<" ";
        cout<<endl;
    }
}
Добавлено через 12 минут
По моему это самый быстрый способ.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
using namespace std;
int main(){
    int a[123123],i,q,w,n,b[123123];
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>b[i];
    for(i=0;i<=n;i++)
        a[i]=i;
    cout<<endl;
    while(true){
        q=n-1;
        while(a[q]>a[q+1])
            q--;
        if(q==0)
            break;
        w=n;
        while(a[q]>a[w])
            w--;
        swap(a[q],a[w]);
        q++;
        w=n;
        while(q<w){
            swap(a[q],a[w]);
            q++;
            w--;
        }
        
        for(i=1;i<=n;i++)
            cout<<b[a[i]]<<" ";
        cout<<endl;
    }
}
Добавлено через 2 минуты
Думаю это самый быстрый способ для этой темы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
using namespace std;
int main(){
    int a[123123],i,q,w,n,b[123123];
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>b[i];
    for(i=0;i<=n;i++)
        a[i]=i;
    cout<<endl;
    while(true){
        q=n-1;
        while(a[q]>a[q+1])
            q--;
        if(q==0)
            break;
        w=n;
        while(a[q]>a[w])
            w--;
        swap(a[q],a[w]);
        q++;
        w=n;
        while(q<w){
            swap(a[q],a[w]);
            q++;
            w--;
        }
        
        for(i=1;i<=n;i++)
            cout<<b[a[i]]<<" ";
        cout<<endl;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2023, 22:12

Вывести все возможные перестановки букв в слове 'перепел'
Вывести все возможные перестановки букв в слове 'перепел' и посчитать их кол-во.

Все возможные перестановки букв слова - нужен алгоритм
Доброго времени суток, форумчане. Помогите пожалуйста найти/составить алгоритм решения следующей задачи: Дано слово. Найти все возможные...

Все возможные суммы элементов массива
Нужно сформировать все возможные суммы массива размерностью N Для массива 1 3 5 Результат 4 6 8 9 То есть рассматриваем все возможные...

Все возможные комбнинации элементов массива
Всем привет! Есть массив char array (s - размер массива). Нужно написать прогу, которая выведет все возможные КОМБИНАЦИИ элементов...

Вывести на экран все возможные перестановки введенных ползователем символов
С клавиатуры задается последовательность символов. Написать программу, которая выводит на экран все возможные перестановки введенных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru