Josephus环问题——顺序表求解

Josephus环问题——顺序表求解

算法描述:

①创建一个具有number个元素的顺序表对象list。

②从第start个元素开始,依次计数,每数到distance,就将该元素删除。

③重复计数并删除元素,直到剩下一个元素。


public class SeqList_Josephus {
	
	public SeqList_Josephus(int num, int start, int distance) {
		SeqList<String> list = new SeqList<String>(num);
		for(int i = 0; i<num; i++){
			list.insert((char)('A'+i)+"");  //表尾插入,O(1)
		}
		System.out.println(list.toString());
		int i = start;        
		while(list.size() > 1){         //表中多于一个元素,继续循环
			i = (i + distance - 1) % list.size();    //循环遍历
			System.out.println("删除"+list.remove(i).toString()+", ");    //删除i位置的元素,O(n)
			System.out.println(list.toString());
		}
		System.out.println("被赦免者是:"+list.get(0).toString());
	}
	
	public static void main(S
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值