Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2015, 17:08   #1
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию Сортировка двумерного массива

Привет!

Есть массив:

Код:
MyArray[0][0] := 1;
MyArray[0][1] := param1;
MyArray[0][2] := param2;
MyArray[1][0] := 9;
MyArray[1][1] := param1;
MyArray[1][2] := param2;
MyArray[2][0] := 4;
MyArray[2][1] := param1;
MyArray[2][2] := param2;
Как его отсортировать, чтобы он выглядел так:

Код:
MyArray[0][0] := 9;
MyArray[0][1] := param1;
MyArray[0][2] := param2;
MyArray[1][0] := 4;
MyArray[1][1] := param1;
MyArray[1][2] := param2;
MyArray[2][0] := 1;
MyArray[2][1] := param1;
MyArray[2][2] := param2;
bilibian вне форума Ответить с цитированием
Старый 02.12.2015, 18:20   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

в сортировке должна быть закономерность. где она тутЪ?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.12.2015, 20:18   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
тутЪ
строки сортируются по убыванию значений в нулевом столбце
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.12.2015, 06:02   #4
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Есть идеи как можно это сделать?

Основная задача заключается в следующем:

Необходимо достать из массива три элемента с наибольшим значением в нулевом столбце.

Последний раз редактировалось Stilet; 03.12.2015 в 09:47.
bilibian вне форума Ответить с цитированием
Старый 03.12.2015, 09:38   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Необходимо достать из массива три элемента с наибольшим значением в нулевом столбце.
Код:
a1:=0;// первый и пока самый лучший

if m[1][0]>m[a1][0] then begin a2:=a1; a1:=1; end //а второй-то лучше
else begin a2:=1; end; // не лучше но на втором месте

     if m[2][0]>m[a1][0] then begin a3:=a2; a2:=a1; a1:=2; end // а третий еще лучше
else if m[2][0]>m[a2][0] then begin a3:=a2; a2:=2; end // не самый лучший
else begin a3:=2; end; // не лучше но на третьем месте

for j:=3 to length(myarray,1)-1 do begin
       if m[j][0]>m[a1][0] then begin a3:=a2; a2:=a1; a1:=j; end // претендент на первое место
  else if m[j][0]>m[a2][0] then begin a3:=a2; a2:=j; end // на второе место
  else if m[j][0]>m[a3][0] then begin a3:=j; end // на третье место
  else ; //нам такое не нужно (у нас ВСЕГО три места)
end;

//три САМЫХ ЛУЧШИХ
myarray[a1][*]
myarray[a2][*]
myarray[a3][*]
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 04.12.2015, 01:47   #6
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от bilibian Посмотреть сообщение
Есть идеи как можно это сделать?

Основная задача заключается в следующем:

Необходимо достать из массива три элемента с наибольшим значением в нулевом столбце.
А сортировка тут при чём, уважаемый?
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка двумерного массива. victor5133 PHP 2 19.05.2012 20:18
сортировка двумерного массива Miles Помощь студентам 3 19.12.2011 22:14
Сортировка двумерного массива Makarov Помощь студентам 8 29.10.2011 11:55
Сортировка двумерного массива shadowfiend C++ Builder 0 21.04.2011 19:29
Сортировка двумерного массива Расим Помощь студентам 7 15.12.2009 22:29