弗洛伊德判环算法
m為環外路徑,n為環的長度
慢
m+kn
快:慢的兩倍
m+m+2kn
快-慢:快慢相遇,所以快比慢多跑t圈
m+kn=tn
此時慢從頭開始,走m步到達起點,快也走m步:
2m+2kn+m=m+2tn
所以此時快指針的位置是環起點后轉了2t圈,所以又回到了環起點。
總結
- 上一篇: C语言//注释使下一行代码失效
- 下一篇: 浅谈安卓线程池相关问题
m為環外路徑,n為環的長度
慢
m+kn
快:慢的兩倍
m+m+2kn
快-慢:快慢相遇,所以快比慢多跑t圈
m+kn=tn
此時慢從頭開始,走m步到達起點,快也走m步:
2m+2kn+m=m+2tn
所以此時快指針的位置是環起點后轉了2t圈,所以又回到了環起點。