Добрый день!
Для исследования эффективности алгоритма в худшем случае, мне нужно предварительно сгенерировать слова в определенной последовательности: от "zzzz" до "aaaa", в зависимости от требуемого количества слов.
Сейчас это генерируется так:
int count_words = 200000;
char** words = malloc(count_words * sizeof(char*));
// Generate words in worst-case
int index = 0;
for (int a = 0; a < 'z' - 'a'; a++) {
for (int b = 0; b < 'z' - 'a'; b++) {
for (int c = 0; c < 'z' - 'a'; c++) {
for (int d = 0; d < 'z' - 'a'; d++) {
if (index < 200000) {
words[index] = malloc(5 * sizeof(char));
words[index][0] = 'z' - a;
words[index][1] = 'z' - b;
words[index][2] = 'z' - c;
words[index][3] = 'z' - d;
words[index][4] = '\000';
index++;
}
}
}
}
}
А требуется примерно так:
int count_words = 200000;
char** words = malloc(count_words * sizeof(char*));
// Generate words in worst-case
for (int i = 0; i < count_words; i++) {
words[i] = calloc(STR_LEN + 1, sizeof(char));
for (int k = 0; k < STR_LEN; k++) {
words[i][k] = 'z' - SOME_ARITHMETICS;
}
words[STR_LEN] = '\000';
}
Заранее спасибо!