算法复杂度与代码性能优化
实践中的数据结构
这里有一个简单的演示项目 RandomWordSearch ,它是一个复杂的随机单词生成器。程序启动时,会从文件中加载 370,101 个英语单词列表,并准备三个预加载这些单词的内部数据结构。
程序向用户展示三个按钮,三个按钮运行的基本是相同的代码,唯一的区别是传递给集中式单词生成器的测试函数不同。
以下是 FindGoodWord 方法的核心代码:
procedure TfrmRandomWordSearch.FindGoodWord(
const wordTest: TWordCheckDelegate);
var
word: string;
isWordOK: boolean;
time: TStopwatch;
begin
time := TStopwatch.StartNew;
repeat
word := GenerateWord;
isWordOK := wordTest(word);
until isWordOK or (time.ElapsedMilliseconds > 10000);
if isWordOK then
lbWords.ItemIndex := lbWords.Items.Add(Format('%s (%d ms)',
[word, time.ElapsedMilliseconds]))
else
lbWords.ItemIndex := lbWords.Items.Add
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



