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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
rafull6
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 32
11.05.2014, 17:10     Сортировка выбором столбцов двумерного массива #1
Здравствуйте! Перечитал на форуме все что только смог найти связанное с сортировкой выбором. Проблема заключается в том что в основном все темы о сортировке выбором одномерного массива. Не могли бы вы показать пример сортировки выбором двумерного массива ( 5х5 к примеру ) и как можно реализовать сортировку выбором столбцов этого массива (от минимального к максимальному)

пример: исходный массив
2 4 5 6
6 1 2 9
0 4 3 6
4 5 0 9

после сортировки
0 1 0 6
2 4 2 6
4 4 3 9
6 5 5 9
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Keshander
8 / 8 / 4
Регистрация: 21.04.2014
Сообщений: 31
Завершенные тесты: 1
11.05.2014, 18:36     Сортировка выбором столбцов двумерного массива #2
rafull6, да вроде ничего сложного не вижу... Вот код(функция sort реализует сортировку выбором) и скрины работы:
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
#include<iostream>
 
using namespace std;
 
void input (float **B, int const n, int const m)
{
        for (int str=0; str<n; str++)
                for (int stl=0; stl<m; stl++)
                {
                        cout << "B["<<str<<"]["<<stl<<"]: ";
                        cin >>B[str][stl];
                }
}
 
void sort (float **B, int const n, int const m)
{
        for (int stl=0; stl<m; stl++)
            for(int i=0; i<n-1; i++){
                int min=i;
                for(int j=i+1;j<n;j++)
                    if(B[j][stl]<B[min][stl])
                        min=j;
            if(min!=i) swap(B[i][stl],B[min][stl]);
            }
}
 
void output (float **B, int const n, int const m)
{
        for (int str=0; str<n; str++)
        {
                for (int stl=0; stl<m; stl++)
                        cout<<B[str][stl]<<" ";
                cout<<endl;
        }
}
 
int main()
{
int n, m;
        cout << "Input row count: ";
                cin >> n;
        cout << "Input cloumn count: ";
                cin >> m;
float **B = new float *[n];
for (int i=0; i<n; i++)
         B[i] = new float [m];
 
input(B,n,m);
cout<<"\n before sort:\n";
output(B,n,m);
cout<<"\n after sort:\n";
sort(B,n,m);
output(B,n,m);
for (int i=0; i<n; i++) delete [] B[i];
delete [] B;
B=NULL;
system("Pause");
return 0;
}
Миниатюры
Сортировка выбором столбцов двумерного массива  
rafull6
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 32
11.05.2014, 19:11  [ТС]     Сортировка выбором столбцов двумерного массива #3
большое вам спасибо! действительно работает! не могли бы вы преобразовать код в С, пожалуйста?
Fear1911
6 / 3 / 7
Регистрация: 05.02.2014
Сообщений: 131
11.05.2014, 19:11     Сортировка выбором столбцов двумерного массива #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
rafull6, rafull6,


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
// ConsoleApplication4.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
void main()
{
 
    int i;
    const int k=4;
    int b;
    int y[k][k]= {
        2, 4, 5, 6,
        6,1,2,9,
        0,4,3,6,
        4,5,0,9};
 
 
for(int i = 0; i < k; i++)
    {
     // по строкам
     for(int j = 0; j < k; j++)
     {
      for(int h = j + 1; h < k; h++)
      {
        if (y[j][i] > y[h][i])
        {
          b = y[j][i];
          y[j][i] = y[h][i];
          y[h][i] = b;
        }
      }
     }
    }
        
    
        
        for(i=0; i<k; i++)
        {
            
            for(int j=0; j<k; j++)
            {
            cout <<y[i][j]<<"\t";
            }
            cout<<"\n";
        }
        
    
    system("pause");
}
rafull6
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 32
11.05.2014, 19:35  [ТС]     Сортировка выбором столбцов двумерного массива #5
Keshander, Fear1911, спасибо вам большое за помощь!
MrTigro
3 / 3 / 2
Регистрация: 22.01.2014
Сообщений: 16
26.11.2014, 02:51     Сортировка выбором столбцов двумерного массива #6
А если надо отсортировать просто елементы массива?
Yandex
Объявления
26.11.2014, 02:51     Сортировка выбором столбцов двумерного массива
Ответ Создать тему
Опции темы

Текущее время: 06:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru