15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
1

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2008, 19:21
Ответы с готовыми решениями:

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

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

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

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

18
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
06.09.2008, 20: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
#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
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
06.09.2008, 20:32  [ТС] 3
что такое
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 4
меняет местами значения переменных
0
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
06.09.2008, 20:47  [ТС] 5
кстати а методом выбора можете показать ?
это одномерный массив.
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 6

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
Эксперт С++
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
06.09.2008, 22:58 7
Casper!,Каждая строка двумерного массива - одномерный массив...
0
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 01:24  [ТС] 8
Цитата Сообщение от XuTPbIu_MuHTAu Посмотреть сообщение
Casper!,Каждая строка двумерного массива - одномерный массив...
Хорошая идея ,а главное, свежая =)

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

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
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 14:56  [ТС] 10
красиво росписано но это одно мерный массив
0
10 / 10 / 2
Регистрация: 18.08.2008
Сообщений: 127
07.09.2008, 16:09 11
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
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 17:28  [ТС] 12
если я покажу это на занятиях они не поверят ,а можно спросить что это за функцыя такая??мы еще такую неучили что бы она сама себя вызывала,да еще и с глобальным константом.
но выгледит внушительно,
да кстати я только на первом семестре обучаюсь ,и начали и зучать рекурсии тока

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

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
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.09.2008, 19:44  [ТС] 14
ух ты респект
0
0 / 0 / 0
Регистрация: 23.09.2008
Сообщений: 4
23.09.2008, 19:22 15
А если с использованием STL?
0
nikitastrn
29.04.2009, 21:07 16
Помоги плиз что делают строки
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';
    }
}
35 / 34 / 17
Регистрация: 28.04.2009
Сообщений: 67
29.04.2009, 22:07 17
Тут вопросик был по сортировке...
есть методы: пузырька, выбора и рекурсивный, коментариев правда нет , но работает. сортировка двумерного массива
0
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
29.04.2009, 22:55  [ТС] 18
омоги плиз что делают строки
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 19
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию одинаковых элементов в каждой строке с помощью пузырьковой и выборочной сортировки!!!!!!
помогите пожалуйста решит это
0
31.10.2009, 14:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2009, 14:24
Помогаю со студенческими работами здесь

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

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

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

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


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

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

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