3.1.38 #
解答 #
实验结果如下:
BinarySearchST
SequentialSearchST
对于 BinarySearchST
,每次比较之后以及移动元素时令 Cost
增加。
对于 SequentialSearchST
,统计每次的查找次数即可。
然后绘制成散点图即可。
代码 #
有关绘图的函数,传入的参数为第 i
次 Put()
的开销。
public void Draw(int[] data)
{
Graphics panel = this.CreateGraphics();
float unitX = (float)this.ClientRectangle.Width / data.Length;
float unitY = (float)this.ClientRectangle.Height / data.Max();
int accumulation = 0;
for (int i = 0; i < data.Length; i++)
{
// Gray
panel.FillEllipse(Brushes.Gray, (i + 1) * unitX, this.ClientRectangle.Bottom - data[i] * unitY, 2, 2);
// Red
panel.FillEllipse(Brushes.Red, (i + 1) * unitX, this.ClientRectangle.Bottom - accumulation / (i + 1) * unitY, 2, 2);
accumulation += data[i];
}
}