![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
sheka |
![]()
Сообщение
#1
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Нужно отсортировать двумерный массив по строкам насквозь.
Т.е. результат должен выглядеть так: 1 2 3 4 5 6 7 8 ЧЕМ это можно сделать? qsort не хочет. Думал, а вдруг кто-то адресной арифметикой баловался при его написании, хотя это вряд ли кто-то делал, ведь сортировка Хоара для этого не сильно подходит. ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
qsort должен работать
-------------------- |
IUnknown |
![]()
Сообщение
#3
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Нужно отсортировать двумерный массив по строкам насквозь. Как задан двумерный массив, можно уточнить? Статический? Или динамический?Вообще-то со статическим std::sort прекрасно справляется: const int n_cols = 5; |
sheka |
![]()
Сообщение
#4
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Динамический.
Сообщение отредактировано: sheka - 11.09.2011 19:58 |
IUnknown |
![]()
Сообщение
#5
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
В таком случае тебе надо писать сортировку самому, ни один стандартный метод не будет сортировать массив, который не расположен в одном куске памяти. А динамический массив (я имею в виду вот такой:
int **arr = new int*[n_rows];) как раз-таки и расположен черт знает как. Одна строка может быть здесь, другая - где-то в другом месте... |
TarasBer |
![]()
Сообщение
#6
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> Динамический.
С этого бы и начал. Создавай динамический двумерный массив так, чтобы данные располагались последовательно. То есть выделяешь линейный участок Mem под x*y элементов, также для удобства выделяешь участок Lines под y указателей на элементы - в нём хранишь указатели на начала строк (Lines[j] = Mem[j*x]). К элементу (i,j) обращаешься как Lines[j,i]. Сообщение отредактировано: TarasBer - 11.09.2011 20:15 -------------------- |
sheka |
![]()
Сообщение
#7
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Цитата как раз-таки и расположен черт знает как. Одна строка может быть здесь, другая - где-то в другом месте Блин, я об этом и забыл подумать. ![]() |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2024 7:56 |