3.1.38

3.1.38 #

解答 #

实验结果如下:

BinarySearchST

SequentialSearchST

对于 BinarySearchST ,每次比较之后以及移动元素时令 Cost 增加。

对于 SequentialSearchST,统计每次的查找次数即可。 然后绘制成散点图即可。

代码 #

有关绘图的函数,传入的参数为第 iPut() 的开销。

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];
    }
}

另请参阅 #

SymbolTable 库