`
BrokenDreams
  • 浏览: 253750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
68ec41aa-0ce6-3f83-961b-5aa541d59e48
Java并发包源码解析
浏览量:100044
社区版块
存档分类
最新评论

一个小编程题-类似约瑟夫环问题

阅读更多
        今天群友出了一题:
        一个数列,把第一个元素删除,然后把第二个元素放到数列的最后,依次操作下去,直到把数列中所有的数都删除,要求依次打印出这个过程中删除的数。

        想一下这个过程类似于约瑟夫环,相当于把数组当成一个环,然后每隔一个数删掉一个数,直到把所有的数删完,当然这个过程中要打印出被删除的数。

       
 /**
	 * 思路:弄一个bit数组和目标数组一一对应,如果目标数据项被'删除',
	 * 那么在对应的bit数组上做一下标记,下次数step的时候会跳过这些
	 * 别标记的bit。
	 * 
	 * @param array
	 */
	public static void pirntFromArray(int[] array){
		int len = array.length;
		BitSet bitSet = new BitSet(len);
		int p = 0;
		for(int i=0;i<len;i++){
			System.out.print(array[p] + " ");
			bitSet.set(p);
			int s = 2;
			while(s > 0 && i != len - 1){
				p = (len - p) == 1 ? 0 : p + 1;
				if(!bitSet.get(p)){
					s -- ;
				}
			}
		}
	}


public static void main(String[] args) {
		int array[] = new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
		pirntFromArray(array);
	}


1 3 5 7 9 11 13 15 4 8 12 2 10 6 14 


   
分享到:
评论

相关推荐

    猴王(约瑟夫衍生问题)程序

    在本题中,我们面对的是约瑟夫环问题的一个变体,即“猴王”问题,我们需要通过编程来解决。 猴王问题,也称为“猴子选王”或“猴子王游戏”,与原始的约瑟夫环问题类似,但目标是找出最后被选中的“猴王”。在这个...

    算法与程序实践习题解答5&#40;模拟&#41;doc.doc

    **CS512:另一个约瑟夫环问题(未做)(Yet Another Josephus Problem)** 这个题目扩展了基本的约瑟夫问题,可能引入了新的规则或参数,需要创新性地思考和设计算法。 **CS513:三子棋游戏(Tic Tac Toe)** 三子...

    运用计算机完成有趣的问题PPT课件.pptx

    最后,10.5题是一个经典的约瑟夫环问题(Josephus Problem),在圈中报数并淘汰的游戏中寻找最后的幸存者。这是一个典型的链表操作问题,可以使用链表模拟报数过程,每次淘汰报到特定数字的节点,直到只剩下最后一个...

    前端程序员面试分类真题23.pdf,这是一份不错的文件

    这是一个经典的算法问题,通常被称为"猴子国王"或"约瑟夫环"问题。问题的核心在于模拟一个循环移除的过程,每数到m的猴子会被踢出圈子,直到只剩下一个猴子。算法实现的关键在于使用数组存储猴子的编号,并通过循环...

    报数出列问题

    题目中的“报数出列问题”,也称为约瑟夫环问题(Josephus Problem),是一个经典的理论计算机科学问题。这个问题的基本设定是人们按照一定的规律报数,报到特定数字的人会被淘汰,直到只剩下最后几个人为止。在这个...

    ITAT第四届JAVA复赛试题A卷

    该问题是一个典型的算法问题,类似于约瑟夫环。要求找出从1开始按1-3报数,数到3退出后的最后一个小朋友编号。解决此问题需要掌握循环、条件判断及数组或链表的数据结构。 6. **文件系统操作**: 提供的附加题...

    计算机三级考试上级题 4题 P34 O前边的和后边的

    该题涉及循环控制和计数器,实现了一个类似于约瑟夫环(Josephus Problem)的算法。这里用一个循环数组q表示状态,通过i和j指针追踪元素,cnt记录连续的m个元素。当cnt等于m的倍数时,将i位置的元素移出圈子,更新n...

    考研数据结构算法题总结36页(893+408)

    3. **递归与非递归**:递归在二叉树遍历、约瑟夫环问题等中都有应用,非递归的算法如栈实现队列。 4. **图的遍历**:虽然未给出具体题目,但提到了图论算法,包括图的遍历,类似于树的遍历,需要防止死循环,通常...

    java源码包---java 源码 大量 实例

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    贵州大学计算机考研复试面试辅导资料.docx

    - **约瑟夫环**:通过模拟约瑟夫环问题,考察学生对于循环链表和递归的理解。 ### 6. 综合面试提问 在面试过程中,除了专业知识外,还可能会涉及到一些综合性质的问题,如项目经验、团队合作能力、解决问题的能力...

    数据结构二十题目

    约瑟夫环问题是一个经典的递归问题,涉及循环队列或链表的使用。通过递归算法,可以有效地模拟出队列中人员按照特定规则出列的过程。 #### 4. 迷宫问题 迷宫问题通常使用图或树结构来建模,通过深度优先搜索(DFS)...

    四川省计算机等级考试二级C语言机试试题.pdf

    这道题目是经典的约瑟夫环问题,涉及循环、数组和条件判断。考生需要创建一个循环,模拟报数过程,并在达到条件时从数组中移除元素,最终确定最后留下的元素。 总的来说,这些试题旨在测试考生对C语言基础知识的...

    北交冯凤娟老师数据结构习题答案

    8. **约瑟夫环**:也称为约瑟夫问题,是一个著名的理论问题,涉及到链表操作和循环移位,用于理解链表和循环结构的处理。 9. **冒泡排序**:基础排序算法,通过不断交换相邻的逆序元素来逐渐排序,适合小规模数据...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    JAVA上百实例源码以及开源项目源代码

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    数据结构与C语言综合习题集

    4. **约瑟夫环问题**:这是算法设计中的经典问题,用数组或链表实现,模拟循环报数并移除的过程。要求能处理到30人的环,并支持动态输入m和n的值。 5. **学生宿舍管理查询软件**:设计数据库结构(数组或链表)来...

Global site tag (gtag.js) - Google Analytics