Algorithm to find two points furthest away from each other

前端 未结 9 1362
闹比i
闹比i 2020-12-13 06:23

Im looking for an algorithm to be used in a racing game Im making. The map/level/track is randomly generated so I need to find two locations, start and goal, that makes use

9条回答
  •  被撕碎了的回忆
    2020-12-13 07:20

    Follow up to the question about Floyd-Warshall or the simple algorithm of Hosam Aly:

    I created a test program which can use both methods. Those are the files:

    • maze creator
    • find longest distance

    In all test cases Floyd-Warshall was by a great magnitude slower, probably this is because of the very limited amount of edges that help this algorithm to achieve this.

    These were the times, each time the field was quadruplet and 3 out of 10 fields were an obstacle.

    Size         Hosam Aly      Floyd-Warshall
    (10x10)      0m0.002s       0m0.007s     
    (20x20)      0m0.009s       0m0.307s
    (40x40)      0m0.166s       0m22.052s
    (80x80)      0m2.753s       -
    (160x160)    0m48.028s      -
    

    The time of Hosam Aly seems to be quadratic, therefore I'd recommend using that algorithm. Also the memory consumption by Floyd-Warshall is n2, clearly more than needed. If you have any idea why Floyd-Warshall is so slow, please leave a comment or edit this post.

    PS: I haven't written C or C++ in a long time, I hope I haven't made too many mistakes.

提交回复
热议问题