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

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

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

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

06.09.2008, 19:21. Просмотров 5330. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2008, 19:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка элементов каждой строки матрицы по возрастанию (C++):

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

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

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

Функция сортировки элементов по возрастанию отдельно для каждой строки матрицы - C++
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 =...

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

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

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

Добавлено через 35 секунд
vetal-voyts ,а без функции слабо ?=)
0
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] - представление всего двухмерного масива одномерным
1
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 14:56  [ТС] #10
красиво росписано но это одно мерный массив
0
qwone
9 / 9 / 1
Регистрация: 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
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-столбцы.но чесно говоря я трудно ща предстовляю как с помощью этого отсортеровать заполненый массив случаиными числами
0
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);
}
1
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 19:44  [ТС] #14
ух ты респект
0
Mortal
0 / 0 / 0
Регистрация: 23.09.2008
Сообщений: 4
23.09.2008, 19:22 #15
А если с использованием STL?
0
23.09.2008, 19:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2008, 19:22
Привет! Вот еще темы с ответами:

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

Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой строки. размер матрицы 7х7.заранее спасибо - C++
Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой строки.. размер матрицы 7х7.заранее...

Найти среднее арифметическое каждой строки матрицы и отсортировать строки по возрастанию - C++
Дана квадратная матрица. Найти среднее арифметическое каждой строки и отсортировать строки по возрастанию этих характеристик

умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй матрицы - C++
получить новую матрицу умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй...


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

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

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