0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 10
1

сортировка двумерного массива

04.06.2015, 22:33. Показов 4353. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста упорядочить двумерный массив состоящий из вещественных элементов по возрастанию элементов первого столбца, при этом все элементы строк тоже перемещаются. Заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2015, 22:33
Ответы с готовыми решениями:

сортировка двумерного массива
Имеется двумерный массив вещ. чисел,которое заполняется автоматически,нужно отсортировать все...

Сортировка двумерного массива
Добрый день. Дано было такое задание . "Даны два числа n и m. Создать матрицу размером и...

Сортировка двумерного массива
Всем привет, я давно уже не брался за программирование и вдруг что то в голову ударило решил...

Сортировка двумерного массива
Необходимо отсортировать массив сортировкой Шелла с шагом d=N /2^i: в одной программе сортировать...

4
195 / 196 / 120
Регистрация: 27.05.2011
Сообщений: 545
04.06.2015, 22:40 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iostream>
#include <vector>
 
int main() {
    using namespace std;
    vector< vector<double> > matrix;
    /* ввод */
    sort(matrix.begin(), matrix.end(),
            [](const vector<double>& a, const vector<double>& b) {
                return a[0] < b[0];
            });
    /* вывод */
}
0
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 10
04.06.2015, 23:16  [ТС] 3
а можно по подробнее. я использовал этот код для ввода массива:
C++
1
2
3
4
5
6
7
8
9
10
11
const unsigned n=2;
    double c[n][n];
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            cout << "array[" << i << "][" << j << "] = ";
            cin >> c[i][j];
        }
        cout << endl;
    }
0
195 / 196 / 120
Регистрация: 27.05.2011
Сообщений: 545
04.06.2015, 23:38 4
Лучший ответ Сообщение было отмечено abso как решение

Решение

Я писал код, с учётом, что вы будете использовать вектор-массив из стандартной библиотеки. Дело в том, что строки такого `double c[n][n]` массива функция sort не умеет перемещать. Вам следует объявить массив так:
C++
1
vector< vector<double> > matrix(M, vector<double>(N));
где M и N количество строк и столбцов соответсвенно. Да, конечно, синтаксис не такой прозрачный, зато будет работать. В вшем коде придётся заменить лишь только вторую строчку, далее с таким массивом можно будет работать почти так же.

В качестве альтернативы можно рассмотреть динамические массивы указателей, но это сложнее. В этой теме я только что показывал как такое делать. Вам же придётся заменить там лишь условие сортировки.
0
1368 / 591 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
05.06.2015, 02:43 5
Пузырек
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
#include <iostream>
 
using namespace std;
 
int main(){
 
  const int Row=5;
  const int Col=6;
 
  double Arr[Row][Col]={
    { 6,   7,  8,  9,  0,  1 },
    { 11,  7,  8,  9,  3,  2 },
    {  3,  7, 12,  9,  0,  3 },
    { 17,  7,  8,  9,  0,  4 },
    {  8,  7,  8,  9,  0,  5 }
  };
 
 
 
for (int i=1;i<Row;i++){
    for (int j=0;j<Row-1;j++){
        if (Arr[i][0]<Arr[j][0]) swap(Arr[i],Arr[j]);
    }
}
 
cout<<"\n";
 
 
 
for (int i=0;i<Row;i++){
    for (int j=0;j<Col;j++){
        cout<<Arr[i][j]<<"  ";
    }   cout<<"\n";
}
 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 02:43
Помогаю со студенческими работами здесь

Сортировка двумерного массива
Задача: Написать код сортировки двумерного массива размерностью m*n. Переставить строки матрицы...

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

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

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


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

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

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