Я работаю над алгоритмом, чтобы найти все перестановки элементов массива char в течение нескольких дней, и он просто не работает.Перестановка массива char В C
Массив символов - это массив **, который я повторяю на основе числа, введенного пользователем, и затем меняю пространство для каждого слова (по 40 символов). Номер, введенный пользователем, - это длина массива, и это номер, который они ожидают ввести. Эта часть работает так, как ожидалось.
У меня возникают проблемы с итерацией через массив символов и вычислением перестановки всего набора (** массива). Затем я хочу иметь еще один массив символов, состоящий из всех перестановок набора. Теперь просто перестановки единичных индексов в ** массиве, а не отдельные символы отдельных индексов.
Есть ли у кого-нибудь советы о том, как успешно это сделать, независимо от размера исходного набора? Я предполагаю, что было бы намного проще, если бы размер набора был статическим.
Мой исходный массив выглядит это как пример
char *array[] = {
"Hello",
"Calculator",
"Pencil",
"School Bus"
};
Который будет проходить в ** массиве, с «Hello» в массиве [0] и «Школьный автобус» в массиве [3], с '\ 0' в конце каждого.
Я хочу перестановку быть на индексов, а не символов.
Так
"Здравствуйте"
.
.
.
«Школа BusSchool BusSchool BusSchool автобус»
Вы можете понять, к чему относится ваш стартовый массив? Сначала вы сказали «char array», затем вы сказали «char array of strings». Я читаю этот вопрос как имеющий массив слов (каждый из которых является строкой) и хочет найти все перестановки этих слов. Это верно? – bta
Это не перестановка. – caf
кафе, да, это так. Это определение одного. http://mathworld.wolfram.com/Permutation.html – Recursion