Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 10.12.2016
Сообщений: 69
1

Сортировка массивов методом выбора

23.12.2016, 15:33. Показов 1004. Ответов 6
Метки нет (Все метки)

В двумерной матрице 5*5 отсортировать диагональ методом выбора.
Помогите пожалуйста.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2016, 15:33
Ответы с готовыми решениями:

Сортировка массивов методом выбора
#include <iostream> #include <math.h> #include <conio.h> #include <cstdlib> using namespace...

Сортировка методом выбора и методом пузырьков
Доброго времени суток, форумчане). Я не спец в программировании, сразу говорю). Нам с другом дали...

Сортировка методом выбора в C++
Сортировать численные значения по значению абсолютной величины методом выбора в C++ Где ошибка? ...

Сортировка методом выбора С++
не подскажите что не так в программе #include <iostream.h> #include <stdlib.h> int n=15; float...

6
Форумчанин
Эксперт CЭксперт С++
8166 / 5014 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
23.12.2016, 17:42 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
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iomanip>
#include <iostream>
 
const int N = 5;
 
void Print(const int arr[N][N])
{
    for (int i=0; i < N; i++)
    {
        for (int j=0; j < N; j++)
            std::cout << std::setw(3) << arr[i][j] << " ";
        std::cout << std::endl;
    }
    std::cout << std::endl;
}
 
void Swap(int &a, int &b)
{
    int tmp = a;
    a = b;
    b = tmp;
}
 
void SelectionSort(int arr[N][N])
{
    for (int i=0; i < N - 1; i++)
    {
        int minIndex = i;
        for (int j=i + 1; j < N; j++)
            if (arr[j][j] < arr[minIndex][minIndex])
                minIndex = j;
 
        if (minIndex != i)
            Swap(arr[i][i], arr[minIndex][minIndex]);
    }
}
 
int main()
{
    int A[N][N];
    for (int i=0; i < N; i++)
        for (int j=0; j < N; j++)
            A[i][j] = (N-i)*N - j;
 
    Print(A);
    SelectionSort(A);
    Print(A);
}
0
Эксперт С++
1933 / 1045 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
23.12.2016, 18:06 3
Алгоритмы сортировок
0
0 / 0 / 0
Регистрация: 10.12.2016
Сообщений: 69
24.12.2016, 21:22  [ТС] 4
а это проще не делается? гочень запутано
0
Форумчанин
Эксперт CЭксперт С++
8166 / 5014 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
26.12.2016, 12:20 5
Цитата Сообщение от Макс Царев Посмотреть сообщение
а это проще не делается?
Что значит проще?
Алгоритм тут точно никак не упростить.
0
0 / 0 / 0
Регистрация: 10.12.2016
Сообщений: 69
02.01.2017, 19:01  [ТС] 6
а можете закомментировать, пожалуйста?
0
1476 / 940 / 810
Регистрация: 30.04.2016
Сообщений: 3,264
02.01.2017, 21:37 7
Лучший ответ Сообщение было отмечено Макс Царев как решение

Решение

Макс Царев, вот мой вариант. Реализация сортировки - моя собственная.

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
#include <iostream>
#include <cstdlib>
#include <locale>
 
using namespace std;
 
int main()
{
 
    srand((unsigned)time(NULL));
    const int N = 5;
    int A[N][N], min, num, k;
    cout << "Исходная матрица:" << endl;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            A[i][j] = 10 + (rand() % 90);
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    for (int i = 0; i < N; i++)
    {
        k = 0;
        while (k < N)
        {
            min = 99;
            for (int i = k; i < N; i++)
            {
                if (A[i][i] <= min)
                {
                    min = A[i][i];
                    num = i;
                }
            }
            swap(A[k][k], A[num][num]);
            k++;
        }
    }
    cout << "Матрица после сортировки главной диагонали:" << endl;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    system("pause");
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.01.2017, 21:37

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Сортировка методом выбора
Выполните сортировку вещественного массива методом выбора: выбирается наименьший элемент и меняется...

Сортировка методом выбора
Задание: программа, сортирующая случайно сгенерированный список из 10 чисел методом выбора....

Сортировка методом выбора
Здравствуйте! Подскажите пожалуйста как сортировкой методом выбора посчитать количество обменов...

Сортировка методом выбора
Ребят помогите. нужно сортирнуть по возростанию средней оценки студентов методом выбора. #include...

Сортировка методом прямого выбора
Есть двумерный массив nxn, заполненный рандомными числами. Отсортировать его методом прямого...

Сортировка массива методом выбора
Добрый вечер!!! В данном коде идет сортировка массива методом шелла Нужно переделать ее как...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.