У меня есть функция для печати всех комбинаций троичных строк от длины 0 до длины n:
void TerString(int len,string input){
printf("\n%s",input.c_str());
if (input.length()<len){
TerString(len,input+"0");
TerString(len,input+"1");
TerString(len,input+"2");
return;
}
else
return;
}
Однако я не совсем уверен, как получить их в логическом порядке.Например, результаты получаются следующим образом, когда я вызываю TerString (3, ""): 0,00,000,001,002,01,010,011,012,02,020,021,022,1,10,100,101,102,11,110,111,112,12,120,121,122,2,20,200,201,202,21,210,211,212,22,220,221,222 * 100 *хотели бы, чтобы они вышли в лексикографическом порядке, например: 0,1,2,00,01,02,10,11,12,20,21,22, и т. д. *
Беззагружая их в массив / список и используя алгоритм сортировки, есть ли способ сделать это?