用顺序表解决约瑟夫环的问题问题

      设有n个人围坐在一个圆桌周围現在从第s个人开始从1开始报数,数到m的人出列然后从出列的下一个人重新开始从1报数数到m的人再出列······如此反复直到所有人出列,求出出列的顺序

      采用顺序表存储结构,将n个人编号存放在顺序表中从顺序表中的第s个元素开始寻找s+m-1个元素,找到后输出(在寻找的過程中若到表尾则跳到开始位置,通过取模实现)再删除元素,下一次从该位置重复上述过程

   该算法运行的主要时间耗费在求出列え素(总共需要出n个元素),每求出一个出列元素调出Delete_SeqList()函数一次所以时间复杂度O(n^2)。

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

约瑟夫环的问题(Josephus)问题:古代某法官要判决n个犯人的死刑,他有一条荒唐的法律将犯人站成一个圆圈,从第s个人开始数起每数到第d个犯人,就拉出来处决然后再数d个,数到的人再处决……直到剩下的最后一个可赦免当n=5,s=1d=2,时:

直接利用ArrayList求解约瑟夫环的问题问题:

发布了52 篇原创文章 · 获赞 3 · 访问量 9万+

}

我要回帖

更多关于 约瑟夫环的问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信