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

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

Войти
Регистрация
Восстановить пароль
 
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
#1

Отсортировать строки - C++

16.04.2013, 17:25. Просмотров 488. Ответов 10
Метки нет (Все метки)

Помогите отсортировать вот таким способом двумерный массив, а именно его строки:

2 3 2 0 0
1 3 5 0 0
2 3 1 0 0
1 2 6 5 0
3 4 0 0 0
1 0 0 0 0

1 0 0 0 0
1 2 6 5 0
1 3 5 0 0
2 3 1 0 0
2 3 2 0 0
3 4 0 0 0

Конечно сам размер задается динамический но нужен именно принцип.
Подскажите идею или может есть метод или встроенная функция в С++. Буду очень признателен. Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 17:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отсортировать строки (C++):

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

В матрице отсортировать строки по возрастанию минимального элемента строки - C++
В матрице M x N переставить строки таким образом, чтобы получилась последовательность q1>=q2>=…>=qm, где qi – минимальное значение среди...

Отсортировать цифры, символы и буквы из строки в отдельные строки - C++
1. Дана строка содержащая цифры, символы и буквы. Отсортировать их в отдельные строки. 2. 3. 4.Правила

Вывести все введенные строки. Отсортировать строки. Вывести самую длинную строку - C++
Здравствуйте!!! Помогите пожалуйста, не могу разобраться с программой. Ввести с клавиатуры строки, пока не будет введено 5 строк, которые...

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

Отсортировать строки - C++
Приветствую. В поиске похожего не нашел, сильно не ругайте если что. Имеется программа, считывает файл, подсчитывает кол-во разных...

10
ioioioi
96 / 28 / 6
Регистрация: 25.06.2010
Сообщений: 104
16.04.2013, 18:22 #2
Нет никакой встроенной в С++ функции для сортировки строк в матрице. Можешь поискать в сторонних библиотеках.
Алгоритм такой:
Перебираем все строки матрицы, сравнивая их с первой строкой: если первый элемент текущей строки меньше, то меняем строки. Если первые эелементы равны, сравниваем вторые. И т.д. После того как закончили все строки с первой строкой, начинаем сравнивать n-2 строк с конца со второй строкой. И так далее.
1
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
16.04.2013, 19:50 #3
C++
1
2
3
4
5
for (int i=0; i<m; ++i)
       for (int j=0; j<n; ++j)
          for (int k=0; k<n; ++k)
             if (a[j][i] < a[k][i])
                std::swap(a[j][i], a[k][i]);
1
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
17.04.2013, 07:03  [ТС] #4
BumerangSP, это не совсем то, мне нужно что бы переставлял всю строку, а так перетавляются элементы в столбце...вот мне как раз таки нужно как описал ioioioi. но спасибо все равно
0
NeonLost
Пес войны
75 / 86 / 3
Регистрация: 23.02.2012
Сообщений: 653
17.04.2013, 09:24 #5
а чем функция сорт не угодила с колбэком?..(
0
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
17.04.2013, 11:26  [ТС] #6
Цитата Сообщение от NeonLost Посмотреть сообщение
а чем функция сорт не угодила с колбэком?..(
Если можно то поподробней пожалуйста...
0
Catstail
Модератор
22915 / 11281 / 1833
Регистрация: 12.02.2012
Сообщений: 18,492
17.04.2013, 11:57 #7
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
#include <iostream.h>
 
int CmpRows(int Arr[6][5], int k, int m, int sz)
{
    int i;
    for (i=0; i<sz; i++)
    {
        if (Arr[k][i] > Arr[m][i]) return 1;
        if (Arr[k][i] < Arr[m][i]) return -1;
    }
    return 0;
}
 
int main(int argc, char* argv[])
{
    int A[6][5]={{2, 3, 2, 0, 0},{1, 3, 5, 0, 0},
            {2, 3, 1, 0, 0},{1, 2, 6, 5, 0},
            {3, 4, 0, 0, 0},{1, 0, 0, 0, 0}};
 
    int i,j,k,l;
 
        // Печать исходного
 
    cout << "Init array:" << endl;
 
    for (i=0; i<6; i++)
    {
        for (j=0; j<5; j++) cout << A[i][j] << " ";
        cout << endl;
    }
 
    // Сортировка
 
    for (i=0; i<5; i++)
        for (j=i+1; j<6; j++)
            if (CmpRows(A,i,j,5) == 1)
                for (l=0; l<5; l++)
                {
                    k=A[i][l];
                    A[i][l]=A[j][l];
                    A[j][l]=k;
                };
 
    cout << "Result array:" << endl;
 
        // Печать результата
 
    for (i=0; i<6; i++)
    {
        for (j=0; j<5; j++) cout << A[i][j] << " ";
        cout << endl;
    }
 
    return 0;
}
1
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
17.04.2013, 11:58  [ТС] #8
Catstail, в очередной раз спасибо!!!!))))
0
Catstail
Модератор
22915 / 11281 / 1833
Регистрация: 12.02.2012
Сообщений: 18,492
17.04.2013, 11:59 #9
Картинка:
0
Миниатюры
Отсортировать строки  
VisualNIK
8 / 8 / 1
Регистрация: 29.10.2012
Сообщений: 168
17.04.2013, 12:00  [ТС] #10
Catstail, класс! а что за компилятор, в каком если не секрет работаете?
0
Catstail
Модератор
22915 / 11281 / 1833
Регистрация: 12.02.2012
Сообщений: 18,492
17.04.2013, 12:16 #11
VC 6.0 из 98-й студии. Старый...
0
17.04.2013, 12:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2013, 12:16
Привет! Вот еще темы с ответами:

Отсортировать строки по алфавиту - C++
Вводим строки, и на выводе получаем их в алфавитном порядке. Я что-то голову ломаю, не понимаю. C/C++

Отсортировать строки матрицы по возрастанию - C++
Заполнить двумерную матрицу случайными целыми числами в диапозоне от 0 до 99.Отсортировать строки полученной матрицы по...

Отсортировать строки в алфавитном порядке - C++
Помогите с задачей.. Отсортировать строки в алфавитном порядке по убыванию. Для критерия упорядочивания использовать подстроку длиной...

Выбрать из строки буквы и отсортировать их - C++
Выбрать из строки буквы и отсортировать их в алфавитном порядке(на си)


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

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

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