У меня есть коллекция списков, каждый из которых содержит от 6 до 7 значений. Мол,
list1 = 2,4,7,4,9,5
list2 = 4,3,7.3,9,8,1.2
list3 = 2,2.4,7,9,8,5
list4 = 9,1.6,4,3,4,1
list5 = 2,5,7,9,1,4
list6 = 6,8,7,2,1,5
list7 = 4,2,5,2,1,3
Теперь я хочу отсортировать их с помощью индекса1 как первичного и индекса3 как вторичного, а индекса2 - как третичного и так далее. То есть вывод должен быть таким:
2,2.4,7,9,8,5
2,4,7,4,9,5
2,5,7,9,1,4
4,2,5,2,1,3
6,8,7,2,1,5
9,1.6,4,3,4,1
Я хочу, чтобы порядок списка был сначала отсортирован по index1, и если значения для index1 одинаковы, то сортировка выполняется по index3 и, если это происходит в дальнейшем, по сравнению с index2. Здесь число списков меньше, которое может увеличиться до 20, а индексы также могут увеличиться до 20.
Алгоритм, который я хочу знать, такой же, как и при сортировке песен iTunes, в которой песни с одинаковым альбомом сортируются сначала по исполнителю, а затем по рангу, а затем по имени. Это альбом, если названия альбомов совпадают, тогда сортировка выполняется по исполнителю, если он одинаков, затем по рангу и так далее. Код может быть в C / C ++ / tcl / shell.