不可压缩性方法被认为可以简化平均情况算法分析。据我了解,这是因为没有必要计算该算法所有可能的输入组合,然后推导出平均复杂度。相反,一个单一的不可压缩字符串被用作输入。由于不可压缩字符串是典型的,我们可以假设此输入可以作为平均情况的准确近似值。
对于如何将不可压缩性方法应用于算法,我感到困惑。顺便说一句,我不是数学家,但认为这个理论在日常编程中有实际应用。
最终,我想学习如何推断任何给定算法的平均情况,无论它是简单还是复杂。能否有人向我演示如何将该方法应用于一个简单的算法?例如,给定一个输入字符串S,存储S中的所有唯一字符,然后逐个打印每个字符:
对于如何将不可压缩性方法应用于算法,我感到困惑。顺便说一句,我不是数学家,但认为这个理论在日常编程中有实际应用。
最终,我想学习如何推断任何给定算法的平均情况,无论它是简单还是复杂。能否有人向我演示如何将该方法应用于一个简单的算法?例如,给定一个输入字符串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]);
}
}
仅就论证而言,我认为伪代码已足够。假设使用线性搜索来检查数组是否包含一个元素。
当然,如果有更好的算法可以用来展示理论,那就更好了。
这个问题可能毫无意义且不切实际,但我宁愿提出来而不是抱有误解。