Поскольку вы запросили алгоритм, подойдет любой алгоритм сортировки на основе сравнения : вы можете использовать быструю сортировку, сортировку слиянием или сортировку кучи, например.
Хитрость в том, что вы сортируете строки, поэтому вам нужно определить, как «сравнивать» одну строку с другой. Для вашей цели строка A «меньше или равна» строке B, если либо
A[0] < B[0]
, либо A[0] == B[0]
и либо A[1] < B[1]
, или A[1] == B[1]
и A[2] <= B[2]
Чтобы реально реализовать алгоритм, все, что вам нужно сделать, это взять реализацию по вашему выборуалгоритм сортировки на основе сравнения и замените часть, которая выполняет сравнение <=
на двух элементах, соответствующей логикой для сравнения строк, описанных выше.