double ClosestPoints2(Point S[],int n)
{
double d0=MAXN;
for(int i=0;i
比较运行结果,得出结论,分治法与蛮力法所求结果相同,从运行时间上来
讲分治法运行远远快于蛮力法。
五、调试和运行程序过程中产生的问题、采取的措施及获得的相关经验教训:
1.课本只给出了伪代码,具体的实验要靠自己动手上机反复实验才能完成。
要通过赋简单值法来初步检验程序的是否正确,再以相同数据检验两种方法的运
行结果是否一致来进一步判断程序是否正确,同时使得两种算法的比较更加公
平,实验更有可信度。
2.要比较分治法和蛮力法求最近对问题的时间复杂度,就要两者各自的运行
时间。为此,必须要有大量数据,便利用了 rand()函数产生大量随机数,还
增加了实验可信度。
3.不要太迷信课本。其中课本上伪代码的函数返回值类型定义为 int 型,使
得赋简单值时运行结果始终为 0,注意到这一点,将 int 改为 double 才得到了
较准确的运行结果。所以,编程是要自己多动脑思考,才能真正解决问题。
5