Как решить задачку про лидеров и аутсайдеров?

Берем рандомный вид спорта.
В базе у нас есть табличка №1 структура такая:
Команда Победа Проигрыш
Команда_1 8 18
Команда_2 2 9
Команда_3 10 2
Команда_4 5 8
Команда_N 9 10

И табличка №2, структура такая:
Домашний матч Выездной матч Дата
Команда_1 Команда_2 19.12.2005
Команда_3 Команда_4 20.12.2005
Команда_N Команда_M 30.12.2005

Команды естественно повторяются и могут быть как в первой колонке так и во второй.

А теперь задачка. Нужно найти в какой день играют самая сильная команда с самой слабой.
В такой постановке вроде всё просто нахожу самую сильную и самую слабую и проверяю 2 варианта:
Слабая_Команда - Сильная_Команда
Сильная_Команда - Слабая_Команда

Но что если нам необходимо найти например 10 самых сильных и 10 самых слабых команд и найти в расписании их?
Существует оптимальный алгоритм? Или нужно брутфорсить все против всех?
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
kentastik
@kentastik Автор вопроса
Если кому-то интересно как я решал.
Взял первую таблицу присоединил к ней 2 столбца в которые записывал является ли команда лузером или фаворитом.
Домашний матч Выездной матч Дата Победитель Проигравший

Если в колонке Победитель и Проигравший было по единичке, то совпадение найдено.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
microphone
@microphone
Сломалось - читай логи!
10 самых сильных ,1 самая сильная команда и самые сильные 9 из тех кто останется после после первого прогона круга алгоритма (исключая ту что уже стала самой сильной) или не так?
Ответ написан
Комментировать
@n1ger
html+css
Как классно, а нынче стало модно, создал вопрос - сам на него ответил, и поставил это как решение =) Зачем спрашивать если сам знаешь ответ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы