Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 26.03.2019
Сообщений: 103
1

Отсортировать список методом глупой сортировки

04.06.2019, 15:53. Показов 1560. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести число n. Сгенерировать список случайных чисел размера n. Отсортировать
список следующим методом сортировки:Глупая сортировка
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2019, 15:53
Ответы с готовыми решениями:

Отсортировать масив методом пузырьковой сортировки
1). Создать 2 массива по 5 элементов. Заполнить их случайными числами и отсортировать первый в...

Отсортировать двухмерный массив, методом быстрой сортировки
Всем привет. Помогите в решении задачи, у меня есть двухмерный массив, нужно отсортировать каждую...

Отсортировать массив с помощью сортировки методом вставки
Подскажите код,есть такая задачка...Дан двумерный массив заполненый с помощью генератора случайных...

Динамический массив отсортировать по возростанию методом быстрой сортировки
Отсортировать дин. масив по возростанию методом быстрой сортировки.

8
1 / 1 / 0
Регистрация: 26.03.2019
Сообщений: 103
04.06.2019, 16:18  [ТС] 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
34
35
#include "pch.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "russian");
 
    int pail = 0;
    int array1[10];
 
    for (int i = 0; i < 9; i++)
    {
        array1[i] = 2 + rand() & 47;
    }
 
    for (j = 0; j < 10; j++) {
        for (int i = 0; i < 10; i++)
        {
            if (array1[i] > array1[i + 1])
            {
                pail = array1[i];
                array1[i] = array1[i + 1];
                array1[i + 1] = pail;
            }
        }
    }
 
    cout << "Отсортированный глупо массив: " << endl;
    for (int t = 0; t < 10; t++)
    {
        cout << array1[t] << endl;
    }
}
0
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 241
04.06.2019, 16:36 3
Если под
Цитата Сообщение от DarkRage Посмотреть сообщение
список
имеется ввиду массив

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
void monkey_sort(vector<int>::iterator begin, vector<int>::iterator end)
{
    if (begin == end)
        return;
    while (true)
    {
        auto i = begin + 1;
        for (; i != end; ++i)
            if (*prev(i) > *i)
                break;
        if (i == end)
            return;
        random_shuffle(begin, end);
    }
}
 
int main()
{
    int n;
    cin >> n;
    vector<int> v(n);
 
    random_device device;
    mt19937 generator(device());
    uniform_int_distribution distribution(-100, 100);
    generate(v.begin(), v.end(), [&](){ return distribution(generator); });
 
    monkey_sort(v.begin(), v.end());
    for_each(v.begin(), v.end(), [](int e){ cout << e << endl; });
    return 0;
}
0
1 / 1 / 0
Регистрация: 26.03.2019
Сообщений: 103
04.06.2019, 16:39  [ТС] 4
напишите полностью пожалуйста
0
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 241
04.06.2019, 16:42 5
C++
1
2
3
4
5
6
#include <random>
#include <algorithm>
#include <vector>
#include <iostream>
 
using namespace std;
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
04.06.2019, 16:46 6
Цитата Сообщение от elseecay Посмотреть сообщение
имеется ввиду массив
elseecay, видно же, что это не ТС формулировал условие. список - это список (не массив и не вектор).
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
04.06.2019, 17:10 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int pail = 0;
    int array1[10];
 
    for (int i = 0; i < 10; i++)
    {
        array1[i] = 2 + rand() & 47;
        cout << array1[i] << '\n';
    }
 
    for (int j = 0; j < 9; j++) {
        for (int i = 0; i < 9; i++)
        {
            if (array1[i] > array1[i + 1])
            {
                pail = array1[i];
                array1[i] = array1[i + 1];
                array1[i + 1] = pail;
            }
        }
    }
0
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 241
04.06.2019, 17:16 8
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
void monkey_sort(list<int>::iterator begin, list<int>::iterator end)
{
    if (begin == end)
        return;
    vector<list<int>::iterator> range;
    for (auto i = begin; i != end; ++i)
        range.push_back(i);
    while (true)
    {
        auto i = next(begin);
        for (; i != end; ++i)
            if (*prev(i) > *i)
                break;
        if (i == end)
            return;
        random_shuffle(range.begin(), range.end());
        set<int*> swapped;
        i = begin;
        for (auto j : range)
        {
            if (!swapped.count(&*i) && !swapped.count(&*j))
            {
                swapped.insert(&*i);
                swapped.insert(&*j);
                swap(*i, *j);
            }
            ++i;
        }
    }
}
 
int main()
{
    int n;
    cin >> n;
 
    random_device device;
    mt19937 generator(device());
    uniform_int_distribution distribution(-100, 100);
 
    list<int> l;
    for (int i = 0; i < n; ++i)
        l.push_back(distribution(generator));
 
    monkey_sort(l.begin(), l.end());
    for_each(l.begin(), l.end(), [](int e){ cout << e << endl; });
    return 0;
}
0
1 / 1 / 0
Регистрация: 26.03.2019
Сообщений: 103
04.06.2019, 20:29  [ТС] 9
Это отсортированный список? у меня ошибку выдаёт при запуске
0
04.06.2019, 20:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2019, 20:29
Помогаю со студенческими работами здесь

Отсортировать методом быстрой сортировки элементы массива, стоящие на четных позициях
Имеется одномерный массив длиной N = 50. Отсортировать методом быстрой сортировки элементы массива,...

Заполнить массив случайными числами и отсортировать его методом быстрой сортировки по убыванию
Написать программу на с++ которая заполняет массив случайными числами и сортирует их методом...

Заполнить случайныйми числами одномерный динамический массив; отсортировать его методом пузырьковой сортировки
В плюсах полный ноль...помогите пожалуйста создать одномерный массив через new и delete его...

Отсортировать все строки методом быстрой сортировки так, чтоб элементы в них располагались по возрастанию
Всем привет:) Не могу никак сделать, помогите, кто шарит) Есть массив 10 на 10. Нужно...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru