Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Помогите отсортировать массив


Автор: Гость_Zakhar 13.1.2006, 01:40
Вот проблемка возникла. На первый взгляд вроде всё просто, но что-то у меня не получается smile

Суть в следующем: нужно отсортировать турнирную таблицу, по определённым правилам.
Вот например:

Х | Х | Х | Х | З - П | О | Команда
-----------------------------------------------
1 | 1 | 0 | 0 | 2 - 1 | 3 | Ливерпуль
1 | 0 | 1 | 0 | 0 - 0 | 1 | Дерби
1 | 0 | 0 | 1 | 0 - 1 | 0 | Ньюкасл
1 | 1 | 0 | 0 | 4 - 0 | 3 | Челси
1 | 0 | 1 | 0 | 1 - 1 | 1 | Манчестер Юн
1 | 0 | 0 | 1 | 0 - 4 | 0 | Сандерленд
1 | 1 | 0 | 0 | 1 - 0 | 3 | Астон Вилла
1 | 0 | 0 | 1 | 2 - 3 | 0 | Уотфорд
1 | 0 | 0 | 1 | 0 - 1 | 0 | Ковентри
1 | 1 | 0 | 0 | 2 - 1 | 3 | Арсенал Л
1 | 0 | 1 | 0 | 0 - 0 | 1 | Лидс
1 | 1 | 0 | 0 | 3 - 2 | 3 | Уимблдон
1 | 0 | 0 | 1 | 0 - 1 | 0 | Мидлсбро
1 | 1 | 0 | 0 | 1 - 0 | 3 | Саутгемптон
1 | 1 | 0 | 0 | 1 - 0 | 3 | Вест Хэм
1 | 0 | 0 | 1 | 1 - 2 | 0 | Шеффилд Уэнсдэй
1 | 1 | 0 | 0 | 1 - 0 | 3 | Брэдфорд
1 | 0 | 0 | 1 | 0 - 1 | 0 | Тоттенхэм
1 | 0 | 0 | 1 | 1 - 2 | 0 | Лестер
1 | 0 | 1 | 0 | 1 - 1 | 1 | Эвертон

А вот правила:
1. Сначало нужно отсортировать таблицу по столбцу "О" (по убыванию)
2. Строки имеющие равные значения в столбце "О" сортируются (по убыванию) по разности столбцов "З" и "П"
3. При равенстве первых двух пунктов для 2 и более строк, такие строки сортируются по столбцу "З" (по убыванию).


А это таже таблица но уже отсортированная по вышеизложенным правилам.

Х | Х | Х | Х | З - П | О | Команда
---------------------------------------------------
1 | 1 | 0 | 0 | 4 - 0 | 3 | Челси
1 | 1 | 0 | 0 | 3 - 2 | 3 | Уимблдон
1 | 1 | 0 | 0 | 2 - 1 | 3 | Арсенал Л
1 | 1 | 0 | 0 | 2 - 1 | 3 | Ливерпуль
1 | 1 | 0 | 0 | 1 - 0 | 3 | Астон Вилла
1 | 1 | 0 | 0 | 1 - 0 | 3 | Вест Хэм
1 | 1 | 0 | 0 | 1 - 0 | 3 | Саутгемптон
1 | 1 | 0 | 0 | 1 - 0 | 3 | Брэдфорд
1 | 0 | 1 | 0 | 1 - 1 | 1 | Манчестер Юн
1 | 0 | 1 | 0 | 1 - 1 | 1 | Эвертон
1 | 0 | 1 | 0 | 0 - 0 | 1 | Лидс
1 | 0 | 1 | 0 | 0 - 0 | 1 | Дерби
1 | 0 | 0 | 1 | 2 - 3 | 0 | Уотфорд
1 | 0 | 0 | 1 | 1 - 2 | 0 | Лестер
1 | 0 | 0 | 1 | 1 - 2 | 0 | Шеффилд Уэнсдэй
1 | 0 | 0 | 1 | 0 - 1 | 0 | Тоттенхэм
1 | 0 | 0 | 1 | 0 - 1 | 0 | Ньюкасл
1 | 0 | 0 | 1 | 0 - 1 | 0 | Мидлсбро
1 | 0 | 0 | 1 | 0 - 1 | 0 | Ковентри
1 | 0 | 0 | 1 | 0 - 4 | 0 | Сандерленд
---------------------------------------------------
Заранее спасибо!

Автор: cardinal 13.1.2006, 02:53
Ответные вопросы:
1. Это видел:
http://forum.vingrad.ru/index.php?showtopic=24655
http://forum.vingrad.ru/index.php?showtopic=60891
а здесь вообще куча алгоритмов
http://forum.vingrad.ru/index.php?showtopic=53676
2. Где твой код?

А так по идее все просто. Пока не понял в чем проблема?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)