Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Feanoro
1 / 1 / 0
Регистрация: 27.03.2008
Сообщений: 15
#1

Сортировка СТРОК матрицы m*m - C++

21.11.2009, 18:41. Просмотров 504. Ответов 4
Метки нет (Все метки)

задание: Упорядочить строки матрицы размером m*m в порядке возрастания елементов в главной диагонали.

Чисто вручную получается только перестановками строк p(m) при чем не всегда можно по возрастанию ... а алгоритма определенного не могу найти... прошу помощи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2009, 18:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка СТРОК матрицы m*m (C++):

Сортировка строк матрицы C++ (перестановка строк) - C++
Помогите пожалуйста, в матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине...

Сортировка строк матрицы - C++
Помогите пожалуйста с задачкой я в матрицах 0 ( Дана матрица 8*8 состоящая из нулей и единиц. Каждая строка представляет собой число в...

Сортировка строк матрицы - C++ - C++
Приветствую! Ребята нужна помощь! Как реализовать сортировку строк матрицы не просто по первому числу каждой строки, а чтобы в случае...

Сортировка строк матрицы по убыванию - C++
Помогите пожалуйста написать функцию. Например, была матрица 10 11 12 13 20 21 22 23 30 31 32 33 40 41 42 43 Нужно, чтобы было: ...

Сортировка строк матрицы по алфавиту - C++
Пытаюсь создать сортировку строк матрицы по алфавиту. Возникшие проблемы описала в комментариях в самом коде для большей наглядности. ...

Сортировка строк матрицы по возрастанию - C++
#include "stdafx.h" #include <conio.h> #include <iostream> #include <time.h> using namespace std; const int n = 3; void...

4
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.11.2009, 21:33 #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
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
#include <iostream.h>
#include <windows.h>
 
bool sled_mas1(int *mas1, int n)
{
    int i, j;
    bool fl=false, fl1=false;
    while(!fl)
    {
        mas1[n-1]++;
        fl=true;
    for(i=n-1; i>=0; i--)
    {
        if(mas1[i]==n)
        {
            mas1[i]=0;
            mas1[i-1]++;
        }
    }
    for(i=0; i<n-1; i++)
        for(j=i+1; j<n; j++)
            if(mas1[i]==mas1[j])
                fl=false;
    if(mas1[0]==n-1 && mas1[1]==n-1)
    {
        fl=true;
        fl1=true;
    }
    }
    return fl1;
}
int main ()
{
    int **mas, *mas1, **mas_rez, n, i, j;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå Г°Г*çìåðГ*îñòü Г¬Г*òðèöû: "<< endl;
    cin>>n;
    mas=new int*[n]; 
    mas_rez=new int*[n];
    for(i=0; i<n; i++)
    {
       mas[i]=new int[n];
       mas_rez[i]=new int[n];
    }
    cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*òðèöû: "<< endl;
    for(i=0; i<n; i++)
       for(j=0; j<n; j++)
       {
          cout<<"["<<i<<"]["<<j<<"]= ";
          cin>>mas[i][j];
       }
        cout<<"èñõîäГ*Г*Гї Г¬Г*òðèöГ*"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<mas[i][j]<<" ";
          cout<<endl;
        }
    // ñîðòèðîâêГ*
    mas1=new int[n];
    for(i=0; i<n; i++)
        mas1[i]=i;
    mas1[n-1]--;
    bool fl=false, fl1=false;
    while(!fl && !fl1)
    {
        fl1=sled_mas1(mas1, n);
        fl=true;
        for(i=0; i<n-1; i++)
            if(mas[mas1[i]][i]>mas[mas1[i+1]][i+1])
                fl=false;
    }
    if(fl1)
        cout<<"ГђГҐГёГҐГ*ГЁГ© Г*ГҐГІ"<<endl;
    else
    {
        for(i=0; i<n; i++)
            for(j=0; j<n; j++)
                mas_rez[i][j]=mas[mas1[i]][j];
        cout<<"îòñîðòèðîâГ*Г*Г*Г*Гї Г¬Г*òðèöГ*"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<mas_rez[i][j]<<" ";
          cout<<endl;
        }
    }          
 
    return 0; 
}
Вижу решение только методом перебора
1
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
21.11.2009, 23:01 #3
Алгоритмы сортировок
смотрел FAQ?
0
Feanoro
1 / 1 / 0
Регистрация: 27.03.2008
Сообщений: 15
21.11.2009, 23:43  [ТС] #4
Во, метод перебора и я пробовал, это оно
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.11.2009, 07:17 #5
МедведЪ, тут к сожалению указанные сортировки не подойдут
0
22.11.2009, 07:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2009, 07:17
Привет! Вот еще темы с ответами:

Сортировка элементов строк матрицы по убыванию - C++
Вот что есть ввод и вывод динамического массива. #include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;conio.h&gt; int main() {...

Сортировка элементов строк матрицы по возрастанию - C++
Дано матрица с размером NxM надо сортировать элементы строка по возрастаню ввод данных 2 5 17 -22 1 -58 28 58 64 81 37 71 ...

Сортировка строк матрицы методом Шелла - C++
Дана матрица размерности n*n отсортировать строки матрицы методом шелла по возрастанию=)

Сортировка строк матрицы в алфавитном порядке - C++
Создаем двумерный динамический массив в котором надо отсортировать строки в алфавитном порядке. Вот код: void sortirowka(char...


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

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

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