Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/104: Рейтинг темы: голосов - 104, средняя оценка - 4.66
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168

Сортировка элементов каждой строки матрицы по возрастанию

06.09.2008, 19:21. Показов 19265. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать двумерный массив. Отсортировать каждую строку по возрастанию.
Одномерный смог отсортировать а.двух мерный слабо =(

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
#include<iostream>
#include<time.h>
using namespace std;
void main()
{
 
   const int row=6,col=6;
    int a[row][col];
    srand (time(0));
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            a[i][j]=rand()%20;
            cout<<i<<":"<<a[i][j]<<'\t';
        }
        cout<<'\n';
    }
        cout<<'\n';
  for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
        if(a[i][j]<a[i][j-1])
            {
                int tmp=a[i][j];
                a[i][j]=a[i][j-1];
                a[i][j-1]=tmp;
            }
            cout<<i<<":"<<a[i][j]<<'\t';
        }
        cout<<'\n';
    }
}
это сортировка пузырьковым методом,он не видет все индексы массива.если не сложно можете показать еще методом выбора,зарание спосибо!!!!!!
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.09.2008, 19:21
Ответы с готовыми решениями:

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

Переставить строки матрицы по возрастанию максимальных элементов каждой строки
Дана целочисленная матрица м*н. Переставить строки матрицы по возрастанию максимальных элементов каждой строки.

Упорядочить строки матрицы по возрастанию количества различных элементов в каждой строке
Дана целочисленная прямоугольная матрица. Упорядочить строки матрицы по возрастанию количества различных элементов в каждой строке.

18
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
06.09.2008, 20:18

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>
#include<time.h>
using namespace std;
void main()
{
 
   const int row=6,col=6;
    int a[row][col];
    srand (time(0));
    for(int i=0;i<row;i++)
    {
    cout<<i<<"  ";
        for(int j=0;j<col;j++)
        {
            a[i][j]=rand()%20;
            cout<<a[i][j]<<"\t";
        }
        cout<<'\n';
    }
        cout<<'\n';
  for(int i=0;i<row;i++)
    {
        cout<<i<<"  ";
        for(int j=0;j<col;j++)
        {
        for(int k=col-1;k>j;k--)
        if(a[i][k-1]>a[i][k])
            swap(a[i][k-1],a[i][k]);
            cout<<a[i][j]<<"\t";
        }
        cout<<'\n';
    }
}
1
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
06.09.2008, 20:32  [ТС]
что такое
C++
1
 swap(a[i][k-1],a[i][k]);
можно показать что делает эта функцыя

Добавлено через 4 минуты 49 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
        for(int k=col-1;k>j;k--)
        if(a[i][k-1]>a[i][k])
          {
                int tmp=a[i][k];
                a[i][k]=a[i][k-1];
                a[i][k-1]=tmp;
          }
        cout<<i<<':'<<a[i][j]<<"\t";
        }
        cout<<'\n';
    }
во чучуть подровнять и будет вот токая красота
0
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
06.09.2008, 20:42
меняет местами значения переменных
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
06.09.2008, 20:47  [ТС]
кстати а методом выбора можете показать ?
это одномерный массив.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int i=0;i<size;i++)
 {
   min=a[i];
   imin=i;
   for(int j=i+1;j<size;j++)
{
if(a[j]>min)
{
min=a[i];
imin=j;
}
}
a[imin]=a[i];
a[i]=min;
cout<<a[i]<<'\n';
}
0
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
06.09.2008, 22:03

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
#include<iostream>
#include<time.h>
 
using namespace std;
 
void RandArray(int size, int Array[])
    {
       for(int i=0; i<size; i++)
           {
              Array[i]=rand()%50;
           }
    }
void PrintArray(int size, int Array[])
    {
         for(int i=0; i<size; i++)
          {
             cout<<"M["<<i<<"]= "<<Array[i]<<endl;
          }
    }
void InsertMinElement(int Array[],int size,int place)
    {
        int index=place;
        int minElement=Array[place];
        for(int i=place;i<size;i++)
            {
                if(minElement>Array[i])
                    {
                        index=i;
                        minElement=Array[i];
                    }
            }
        swap(Array[place],Array[index]);
    }
void SelectSort(int Array[],int size)
    {
        for(int i=0;i<size-1;i++)
            InsertMinElement(Array,size,i);
    }
 
void main()
    {
       srand(time(0));
       const int size=10;
       int M[size]={0};
 
       RandArray(size,M);
       PrintArray(size,M);
               SelectSort(M,size); 
       PrintArray(size,M);
    }
0
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
06.09.2008, 22:58
Casper!,Каждая строка двумерного массива - одномерный массив...
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 01:24  [ТС]
Цитата Сообщение от XuTPbIu_MuHTAu Посмотреть сообщение
Casper!,Каждая строка двумерного массива - одномерный массив...
Хорошая идея ,а главное, свежая =)

Добавлено через 35 секунд
vetal-voyts ,а без функции слабо ?=)
0
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
07.09.2008, 10:36

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Select_Sort(int Array[],int size)
    {
        for(int place=0;place<size-1;place++)
          {
            int index=place;
            int minElement=Array[place];
            for(int i=place;i<size;i++)
                {
                if(minElement>Array[i])
                    {
                        index=i;
                        minElement=Array[i];
                    }
                }
            swap(Array[place],Array[index]);
          }  
    }
Добавлено через 37 минут 28 секунд
Casper!,Каждая строка двумерного массива - одномерный массив...
...A[i*N+j] - представление всего двухмерного масива одномерным
1
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 14:56  [ТС]
красиво росписано но это одно мерный массив
0
10 / 10 / 2
Регистрация: 18.08.2008
Сообщений: 127
07.09.2008, 16:09
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
const int row=6;
const int col=6;
 
int main() {
    int i,j,k;
    for (k=0;k<(row*col);k++){
       [COLOR=Red] i=k/row;[/COLOR]
        [COLOR=Red]j=k%col;[/COLOR]
    cout << i <<"\t"<<j <<endl;
    }
    return 0;
}
запусти и посмотри .
Casper! если и сейчас ты не поймешь что делать . То меняй специальность.
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 17:28  [ТС]
если я покажу это на занятиях они не поверят ,а можно спросить что это за функцыя такая??мы еще такую неучили что бы она сама себя вызывала,да еще и с глобальным константом.
но выгледит внушительно,
да кстати я только на первом семестре обучаюсь ,и начали и зучать рекурсии тока

Добавлено через 20 минут 45 секунд
Code
1
cout << i <<"\t"<<j <<'\t'<<k<<'\n';
если так зделать вывод на экран лудше понятно что тут происходит .ты мне показал как отсортировать i-строки.j-столбцы.но чесно говоря я трудно ща предстовляю как с помощью этого отсортеровать заполненый массив случаиными числами
0
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
07.09.2008, 18:39

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
#include<iostream>
#include<time.h>
 
using namespace std;
 
const int col=10;
const int rw=10;
 
 
void RandArray(int column,int row,int Array[][col])
    {
     for(int i=0; i<row; i++)
        {
           for(int j=0; j<column; j++)
           {
         Array[i][j]=rand()%10;
    }
        }
    }
 
void PrintArray(int column,int row, int Array[][col])
    {
      for(int i=0;i<row;i++)
          {
            cout<<i<<" ";
            for(int j=0; j<column; j++)
             {
             cout<<Array[i][j]<<" ";
             }
            cout<<endl;
          }
    }
 
void SelectSort(int column,int row,int Array[][col])
    {
        for(int j=0;j<row;j++)
        {
            for(int place=0;place<column-1;place++)
            {
                int index=place;
                int minElement=Array[j][place];
                for(int i=place;i<column;i++)
                    {
                        if(minElement>Array[j][i])
                        {
                            index=i;
                            minElement=Array[j][i];
                        }
                    }
                swap(Array[j][place],Array[j][index]);
            }
        }
    }
void main()
{
      int M[rw][col];  
      RandArray(col,rw,M);
      PrintArray(col,rw,M);
      SelectSort(col,rw,M);
      cout<<endl;
      PrintArray(col,rw,M);
}
1
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 19:44  [ТС]
ух ты респект
0
0 / 0 / 0
Регистрация: 23.09.2008
Сообщений: 4
23.09.2008, 19:22
А если с использованием STL?
0
nikitastrn
29.04.2009, 21:07
Помоги плиз что делают строки
C++
1
2
3
4
5
6
for(int k=col-1;k>j;k--)
if(a[i][k-1]>a[i][k])
{
int tmp=a[i][k];
a[i][k]=a[i][k-1];
a[i][k-1]=tmp;
код аписал Casper \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\

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<iostream>
#include<time.h>
using namespace std;
void main()
{
 
   const int row=6,col=6;
    int a[row][col];
    srand (time(0));
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            a[i][j]=rand()%20;
            cout<<i<<":"<<a[i][j]<<'\t';
        }
        cout<<'\n';
    }
        cout<<'\n';
  for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
        if(a[i][j]<a[i][j-1])
            {
                int tmp=a[i][j];
                a[i][j]=a[i][j-1];
                a[i][j-1]=tmp;
            }
            cout<<i<<":"<<a[i][j]<<'\t';
        }
        cout<<'\n';
    }
}
 Аватар для NickA
35 / 34 / 17
Регистрация: 28.04.2009
Сообщений: 67
29.04.2009, 22:07
Тут вопросик был по сортировке...
есть методы: пузырька, выбора и рекурсивный, коментариев правда нет , но работает. сортировка двумерного массива
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
29.04.2009, 22:55  [ТС]
омоги плиз что делают строки
C++
1
2
3
4
5
6
for(int k=col-1;k>j;k--)
if(a[i][k-1]>a[i][k])
{
int tmp=a[i][k];
a[i][k]=a[i][k-1];
a[i][k-1]=tmp;
меняем значения массива,если a[i][k-1] элемент больше a[i][k]
0
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12
31.10.2009, 14:24
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию одинаковых элементов в каждой строке с помощью пузырьковой и выборочной сортировки!!!!!!
помогите пожалуйста решит это
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2009, 14:24
Помогаю со студенческими работами здесь

Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке
Помогите пожалуйста... Послезавтра экзамен, надо лабы сдать, а я не успеваю=((( ПОМОГИТЕЕЕЕЕЕ=( Вот он: Вариант 16 Упорядочить...

Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке
Дана целочисленная прямоугольная матрица. Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке. За...

Функция сортировки элементов по возрастанию отдельно для каждой строки матрицы
void sort(int ar) { for (int i = 0; i &lt; size; i++) { for (int j = i + 1; j &lt; size; j++) if (ar &gt; ar) { int t =...

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

Упорядочить строки матрицы по возрастанию суммы модулей их элементов (сортировка не происходит)
там по сути 3 варианта сортировки я нашел, но не сортирует (мож кто знает почему)? я только учусь, не пинайте сильно. //Упорядочить...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru