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

Сортировка двумерного массива Quick Sort и Selection Sort

24.03.2021, 12:16. Показов 3944. Ответов 0
Метки c++, sort (Все метки)

Author24 — интернет-сервис помощи студентам
В чем состоит задание . Отсортировать двумерный массив не переделывая его в одномерный. Те мы НЕ можем взять и последовательно переписать элементы в одномерный , потом обратно записать в двумерный .

И в случае с quicksort и в случае с selection sort , мы будем сортировать с помощью индексов . Те мы мнимо присвоим каждому из элементом свой индекс и с ними уже будем работать . Вроде как обьяснил )))

Я не нашел кода который мне был нужен , поэтому решил создать тему и закинуть код сюда . Если будут вопросы , пишите .

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <iostream>
using namespace std;
 
int** create_array(int str, int col , int rejym )
{
    int** matrix = new int* [str];
    for (int i = 0; i < col; ++i)
        matrix[i] = new int[col];
    if (rejym == 1) {
        for (int i = 0; i < str; i++)
        {
            for (int j = 0; j < col; j++)
            {
                cout << "Введите А " << i + 1 << "х" << j + 1 << " элемент матрицы";
                cin >> matrix[i][j];
            }
        }
    }
    else {
        for (int i = 0; i < str; i++)
        {
            for (int j = 0; j < col; j++)
            {
                matrix[i][j] = rand() % 10;
            }
        }
    }
    return matrix;
}
void print_matrix(int** matrix, int str, int col)
{
    for (int i = 0; i < str; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << matrix[i][j] << " ";
        }
        cout << "\n";
    }
}
 
int& index(int** mass, int index, int col)
{
    int i = index / col;
    int j = index % col;
    return mass[i][j];
}
 
void q_s(int** matrix, int left, int right, int col)
{
    int melem, tmp;
    int l = left;
    int r = right;
    melem = index(matrix, (left + right) / 2, col);
    do
    {
        while (index(matrix, l, col) < melem)
            l++;
        while (index(matrix, r, col) > melem)
            r--;
        if (l <= r)
        {
            tmp = index(matrix, l, col);
            index(matrix, l, col) = index(matrix, r, col);
            index(matrix, r, col) = tmp;
            l++;
            r--;
        }
    } while (l <= r);
 
    if (left < r)
        q_s(matrix, left, r, col);
    if (l < right)
        q_s(matrix, l, right, col);
    
}
int** Selection_Sort(int** matrix, int str, int col)
{
   int size = str * col;
   for (int elem = 0; elem < size; elem++)
   {
        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size; j++)
            {
                if (index(matrix, elem, col) < index(matrix, j, col))
                {
                    swap(index(matrix, elem, col), index(matrix, j, col));
                    break;
                }
            }
        }
   }
    return matrix;
}
 
int size(int str , int col)
{
    return str * col;
}
    
 
 
int main()
{
    //qiuck sort
    setlocale(LC_ALL, "Russian");
    int str, col;
    cout << "введите размер матрицы : ";
    cin >> str;
    cout << \n";
    cin >> col;
    cout << "заполнение вручную - введите 1 , заполнение автоматически - введите 2 ";
    int rejym; 
    cin >> rejym;
    int** matrix = create_array(str, col , rejym);
    print_matrix(matrix, str, col);
    cout << "Выберите режим сортировки SelectionSort - 1 , quicksort - 2 \n";
    int rejym1;
    cin >> rejym1; 
    if (rejym1 == 1) {
        cout << "Отсортированный массив: \n";
        Selection_Sort(matrix, str, col);
        print_matrix(matrix, str, col);
    }
    else {
        cout << "Отсортированный массив: \n";
        q_s(matrix, 0, str * col - 1, col);
        int k = 0;
        while (k < str * col)
        {
            for (int i = 0; i < str; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    cout << index(matrix, k, col);
                    k++;
                }
                cout << "\n";
            }
        }
    }
    system("pause");
    return 0;
    
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2021, 12:16
Ответы с готовыми решениями:

Отсортировать массив методами Bubble Sort, Selection Sort и Insertion Sort
Дан одномерный массив из 10 целых чисел. Заполните массив автоматически случайными числами...

Сортировка Quick Sort
Можно написать код и коментами.

Сортировка двумерного массива методом Выбора. Select sort
Задание: Упорядочить каждую строку матрицы по убыванию. Отсортировал пузырьком, а вот &quot;Выбором&quot;...

Быстрая Сортировка quick-sort (ошибка в 40 строке) как исправить?
#include &lt;iostream&gt; #include &lt;vector&gt; using std::endl; using std::cout; using std::vector; ...

0
24.03.2021, 12:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2021, 12:16
Помогаю со студенческими работами здесь

Quick sort: отсортировать элементы одномерного массива в порядке убывания
Отсортируйте элементы одномерного массива в порядке убывания с помощью метода сортировки...

Написать функцию Quick Sort для массива с 2000 элементов
Написать функцию Quick Sort. Использовать написанную функцию для сортировки массива типа double на...

Quick sort c++
Добрый день. Есть вопрос, как можно реализовать Quick sort с подсчётом перестановок. По условию...

Quick sort using vectors
Now that you have learned about three sorting algorithms with quadratic time complexity (Bubble,...

Реализация алгоритма Quick sort
пожалуйсто напишите алгоритм Quick sort

Quick sort, не понятно некоторые моменты.
здравствуйте нужно реализовать quicksort Есть код с учебника по которому мы учимся, и вот не...


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

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