Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.64
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
#1

Сортировка Двумерного массива - C++

06.09.2008, 19:21. Просмотров 4772. Ответов 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';
    }
}
это сортировка пузырьковым методом,он не видет все индексы массива.если не сложно можете показать еще методом выбора,зарание спосибо!!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2008, 19:21     Сортировка Двумерного массива
Посмотрите здесь:

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

сортировка двумерного массива - C++
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; int i,j,n,k,co,cp; ...

Сортировка двумерного массива - C++
Input sample: 4 10 20 30 7 30 00 23 59 59 13 30 30 Output sample: 7 30 0 10 20 30

Сортировка двумерного массива - C++
Подскажите как отсортировать двумерный массив по возрастанию. Например дан такой массив двумерный: 9 7 4 1 2 3 5 5 5 Должен...

Сортировка двумерного массива - C++
25) В каждой строке матрицы A(n, n) найти наибольший элемент и поменять его местами с соответствующим диагональным элементом. #include...

Сортировка двумерного массива - C++
Здравствуйте! Есть задача: отсортировать чётные строки массива А по возрастанию, а нечётные по убыванию. Написал следующий код: ...

Сортировка двумерного массива - C++
Не могу разобраться как в матрице можно сортировать элементы,после тяжёлого дня мысли уже улетучиваются... Нужно упорядочить средние...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vetal-voyts
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';
    }
}
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
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';
    }
во чучуть подровнять и будет вот токая красота
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
06.09.2008, 20:42     Сортировка Двумерного массива #4
меняет местами значения переменных
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
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';
}
vetal-voyts
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);
    }
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
06.09.2008, 22:58     Сортировка Двумерного массива #7
Casper!,Каждая строка двумерного массива - одномерный массив...
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 01:24  [ТС]     Сортировка Двумерного массива #8
Цитата Сообщение от XuTPbIu_MuHTAu Посмотреть сообщение
Casper!,Каждая строка двумерного массива - одномерный массив...
Хорошая идея ,а главное, свежая =)

Добавлено через 35 секунд
vetal-voyts ,а без функции слабо ?=)
vetal-voyts
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] - представление всего двухмерного масива одномерным
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 14:56  [ТС]     Сортировка Двумерного массива #10
красиво росписано но это одно мерный массив
qwone
9 / 9 / 1
Регистрация: 18.08.2008
Сообщений: 129
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! если и сейчас ты не поймешь что делать . То меняй специальность.
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 17:28  [ТС]     Сортировка Двумерного массива #12
если я покажу это на занятиях они не поверят ,а можно спросить что это за функцыя такая??мы еще такую неучили что бы она сама себя вызывала,да еще и с глобальным константом.
но выгледит внушительно,
да кстати я только на первом семестре обучаюсь ,и начали и зучать рекурсии тока

Добавлено через 20 минут 45 секунд
Код
cout << i <<"\t"<<j <<'\t'<<k<<'\n';
если так зделать вывод на экран лудше понятно что тут происходит .ты мне показал как отсортировать i-строки.j-столбцы.но чесно говоря я трудно ща предстовляю как с помощью этого отсортеровать заполненый массив случаиными числами
vetal-voyts
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);
}
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 19:44  [ТС]     Сортировка Двумерного массива #14
ух ты респект
Mortal
0 / 0 / 0
Регистрация: 23.09.2008
Сообщений: 4
23.09.2008, 19:22     Сортировка Двумерного массива #15
А если с использованием STL?
nikitastrn
Сообщений: n/a
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';
    }
}
NickA
35 / 34 / 2
Регистрация: 28.04.2009
Сообщений: 67
29.04.2009, 22:07     Сортировка Двумерного массива #17
Тут вопросик был по сортировке...
есть методы: пузырька, выбора и рекурсивный, коментариев правда нет , но работает. сортировка двумерного массива
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
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]
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2009, 14:24     Сортировка Двумерного массива
Еще ссылки по теме:

Сортировка двумерного массива - C++
По бумажке расписал - вроде всё правильно, но работает некорректно. Где ошибка? void sort(int **p, int n, int m) { int...

Сортировка двумерного массива... - C++
Дано: одномерный массив А заполненный случайными числами одномерный массив В заполненный случайными числами двумерный массив С...

Сортировка двумерного массива - C++
Дан двумерный массив, размерностью N на N. Надо взять отдельно каждую строку и каждый столбец, отсортировать по возрастанию и сравнить с...

Сортировка двумерного массива - C++
Массивы

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


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

Или воспользуйтесь поиском по форуму:
Sholpan
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12
31.10.2009, 14:24     Сортировка Двумерного массива #19
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию одинаковых элементов в каждой строке с помощью пузырьковой и выборочной сортировки!!!!!!
помогите пожалуйста решит это
Yandex
Объявления
31.10.2009, 14:24     Сортировка Двумерного массива
Ответ Создать тему
Опции темы

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