Говорят, что метод несжимаемости упрощает анализ алгоритмов для среднего случая. Из того, что я понимаю, это потому, что нет необходимости вычислять все возможные комбинации ввода для этого алгоритма, а затем выводить среднюю сложность. Вместо этого в качестве входного сигнала принимается единственная несжимаемая строка. Поскольку несжимаемая строка типична, мы можем предположить, что этот вход может действовать как точная аппроксимация среднего случая.
Я теряюсь в отношении применения метода Несжимаемости к алгоритму. В стороне, я не математик, но думаю, что эта теория имеет практическое применение в повседневном программировании.
В конечном счете, я хотел бы узнать, как я могу вывести средний случай любого заданного алгоритма, будь он тривиальным или сложным. Может кто-нибудь, пожалуйста, продемонстрировать мне, как метод может быть применен к простому алгоритму? Например, учитывая входную строку S, сохраните все уникальные символы в S, а затем напечатайте каждый отдельно:
void uniqueChars(String s) {
char[] chars = chars[ s.length() ];
int free_idx = 0;
for (int i = 0; i < s.length(); i++) {
if (! s[i] in chars) {
chars[free_idx] = s[i];
free_idx++;
}
}
for (int i = 0; i < chars.length(); i++) {
print (chars[i]);
}
}
Только ради аргумента. Я думаю, что псевдокода достаточно. Предположим, что существует линейный поиск для проверки того, содержит ли массив элемент.
Конечно, приемлемы, конечно, лучшие алгоритмы, с помощью которых теория может быть продемонстрирована.
Этот вопрос может быть бессмысленным и непрактичным, но я бы скорее попросил, чем удержал заблуждения.